您能告诉我以下代码为什么不起作用。这是我的代码:
Popup.js(不是backgorund脚本):
chrome.tabs.create({url: url}, function(tab) {
chrome.tabs.executeScript(tab.id, {file: 'connect.js', allFrames:true}, function() {
chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});
});
内容脚本:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
console.log(message);
// Handle message.
// In this example, message === 'whatever value; String, object, whatever'
});
我的清单:
{
"name": "AN App",
"version": "1.0",
"description": "To connect",
"permissions": [
"storage",
"activeTab",
"tabs",
"https://*/*"],
"browser_action": {
"default_popup": "popup.html"
},
"content_scripts": [{
"matches": ["https://*/*"],
"js": ["connect.js"]
}],
/*
"background": {
"scripts": ["background.js"]
},*/
"manifest_version": 2
}
我不明白,选项卡中的控制台调试不显示任何内容...
我也尝试从弹出窗口到背景,然后再从背景到选项卡,但是什么都没有发生(我在chrome扩展程序上很陌生,所以希望您能为我提供帮助)
谢谢
致谢
马丁
答案 0 :(得分:0)
我找到了解决方案。当我从弹出窗口中的JS调用chrome.tabs.create时,它将关闭弹出窗口中运行的代码,并且消息永不发送。
因此,我没有向链接到弹出窗口的JS内部调用chrome.tabs.create,而是向后台脚本发送了一条消息,该后台脚本称为chrome.tabs.create(像这样,它在后台运行并且代码不要停止执行。
然后消息功能像chrome doc所说的那样正常工作。
马丁