Chrome扩展程序在注入的脚本和popup.js之间进行通信

时间:2018-05-14 18:40:25

标签: javascript google-chrome-extension

我正在尝试编写一个chrome扩展,其中我注入了几个可能需要共享数据的不同脚本。我正在尝试使用here所述的消息传递。

我可以从其中一个注入的脚本发送消息到另一个脚本,但我似乎无法将任何内容发送回扩展程序。

扩展名popup.js中的代码:

function injectLoad() {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        // query the active tab, which will be only one tab
        //and inject the script in it
        chrome.tabs.executeScript(tabs[0].id, {file: "load.js"});
    });
}

function  initPopup(  ) {
    console.log( "starting" );
    window.addEventListener( "something", function( evt ) {
      alert( "got " + evt.detail );
    }, false );
}

document.getElementById( 'loadit' ).addEventListener( 'click', injectLoad );

initPopup();

注入脚本中的代码:

function loadit() {

    window.dispatchEvent(new CustomEvent("something", {data: 'whatever'}));
}

loadit(); 

我似乎永远不会触发事件。感谢

0 个答案:

没有答案