适用于 chrome 的浏览器选项卡查询 "Receiving end does not exist"
Browser tab query "Receiving end does not exist" which works on chrome
后台脚本
browser.runtime.onMessage.addListener(function (event) {
if( event.type === 'authenticate' ) {
browser.tabs.query({active: true}, function(tab) {
browser.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
}, function() {});
});
}
});
内容脚本
browser.runtime.sendMessage({
type: "authenticate"
});
browser.extension.onMessage.addListener(function(request, sender, sendResponse) {
if( request.method == 'main' ) {
login();
} else if( request.method == 'logout' ) {
logout();
}
sendResponse({});
});
事件通过并且选项卡 ID 正确,但来自 firefox 的调试信息显示 "Error: Could not establish connection. Receiving end does not exist."
在 chrome 事件回调完成。任何人都知道问题是什么?浏览 google 我发现 id 不正确,但我不确定这里的问题是什么。
使用browser.runtime.onMessage
并更改
browser.tabs.query({active: true}, function(tab) {
browser.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
}, function() {});
});
至
browser.tabs.query({active: true, currentWindow: true}, function(tab) {
chrome.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
});
});
帮我修好了。
后台脚本
browser.runtime.onMessage.addListener(function (event) {
if( event.type === 'authenticate' ) {
browser.tabs.query({active: true}, function(tab) {
browser.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
}, function() {});
});
}
});
内容脚本
browser.runtime.sendMessage({
type: "authenticate"
});
browser.extension.onMessage.addListener(function(request, sender, sendResponse) {
if( request.method == 'main' ) {
login();
} else if( request.method == 'logout' ) {
logout();
}
sendResponse({});
});
事件通过并且选项卡 ID 正确,但来自 firefox 的调试信息显示 "Error: Could not establish connection. Receiving end does not exist."
在 chrome 事件回调完成。任何人都知道问题是什么?浏览 google 我发现 id 不正确,但我不确定这里的问题是什么。
使用browser.runtime.onMessage
并更改
browser.tabs.query({active: true}, function(tab) {
browser.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
}, function() {});
});
至
browser.tabs.query({active: true, currentWindow: true}, function(tab) {
chrome.tabs.sendMessage(tab[0].id, {
method: 'main',
auth0: "test"
});
});
帮我修好了。