内容脚本未获取消息

Content script is not getting message

本文关键字:获取 消息 脚本      更新时间:2023-09-26

我的后台脚本打开一个新的选项卡,然后在这个选项卡上执行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!');
});

所以"它起作用了!"弹出,但"也在这里!"没有。

由于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});
        });
    });
});