我的后台脚本打开一个新选项卡,然后在此选项卡上执行jQuery,然后执行我的脚本并发送此脚本需要的消息。
事情是脚本没有收到消息。
background.js
chrome.tabs.create({url: myUrl}, function(tab){
chrome.tabs.executeScript(tab.id, {file: 'jquery-2.1.4.min.js'}, function(){
chrome.tabs.executeScript(tab.id, {file: 'myScript.js'});
chrome.tabs.sendMessage(tab.id, {myMessage: message.myMessage});
})
});
myScript.js
alert('It works!');
chrome.runtime.onMessage.addListener(function(message) {
alert('Also here!');
});
所以“它有效!”弹出,但“也在这里!”没有。
答案 0 :(得分:2)
由于chrome.tabs.executeScript
是异步的,您还需要等待myScript.js
加载才能向其发送消息:
chrome.tabs.create({url: myUrl}, function(tab){
chrome.tabs.executeScript(tab.id, {file: 'jquery-2.1.4.min.js'}, function(){
chrome.tabs.executeScript(tab.id, {file: 'myScript.js'}, function(){
chrome.tabs.sendMessage(tab.id, {myMessage: message.myMessage});
});
});
});