Я пытаюсь написать расширение для Chrome, в которое я добавляю несколько различных сценариев, которые могут понадобиться для обмена данными. Я пытаюсь использовать передачу сообщений, как описано здесь .
Я могу отправить сообщение от одного из внедренных сценариев другому, но, похоже, я не могу отправить что-либо обратно на расширение.
Код в расширении 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();
Кажется, я никогда не вызвал событие. Спасибо