worker.port.on не получает события - PullRequest
2 голосов
/ 27 марта 2012

main.js полный код:

const data = require("self").data;
const pageMod = require("page-mod");
pageMod.PageMod({
  include: "*",
  contentScriptFile: data.url("addButtons.js"),
  onAttach: function(worker) {
        worker.port.on("testEvent", function(name) {
            window.alert(name);
        });
     }
});

addButtons.js, извлечение:

<...>
var img=document.createElement("img");
img.setAttribute('src', '...');                  
     img.onclick=function() { 
            var name='printMe';
            self.port.emit("testEvent", name);
        //  window.alert(name);
        }
<...>

Цель состоит в том, чтобы отправить событие от addButton.js до main.js, нажав на img и показать предупреждение с аргументом. Если я раскомментирую строку //window.alert(name); в addButton.js - получу предупреждение, то есть функция onclick работает нормально. Но описанный выше код не показывает мне предупреждение или какие-либо ошибки в консоли. Я прочитал все, что касается документации, но это не помогло.

1 Ответ

1 голос
/ 27 марта 2012

Событие отправляется нормально - просто нет window и, следовательно, window.alert() в вашем добавочном номере (если вы откроете консоль ошибок, нажав Ctrl-Shift-J, вы должны увидеть эту ошибку). Вы можете использовать window.alert() только в скриптах содержимого, потому что они прикреплены к веб-странице, в модулях расширения вместо них следует использовать console.log().

...