我已经阅读了所有相关的错误,我认为这种情况有点不同。我正在尝试从后台上下文向内容脚本发送消息。 E.g。
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {
name: name,
args: args
}, function(response){
if (!response) return callback('You tried to message a tab that does not exist');
});
});
如果在安装扩展程序之前加载了打开的选项卡,则会抛出Port error
。要重新创建:
Port error
。有解决方法吗?
答案 0 :(得分:2)
而不是发送消息,programatically insert a content script并使用回调的结果:
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {
code: 'location.href',
runAt: 'document_start',
allFrames: false // Run at the top-level frame only to get
// just one result
}, function(results) {
var result = results[0];
console.log(result); // Example
});
});
您也可以使用file: 'code.js'
代替code: '...'
来运行文件,而不是在字符串中指定代码。