Связь между скриптом дополнения и страницей, упакованной в моем дополнении Firefox

Я разрабатываю дополнение для Firefox. Я использую новый SDK для этого. Я реально о портах и ​​что не для связи между сценарием дополнения и сценариями содержимого. Мое дополнение выполняет некоторую обработку, а затем дает некоторые результаты. Я пытаюсь представить эти результаты пользователю на новой вкладке, чья html/css/js упакована вместе с надстройкой. Я не уверен, как сообщить результаты на страницу.

Спасибо

PS: я могу сделать это удобно с панелью, но я не уверен, как это сделать с новой вкладкой

2 ответа

Решение

ОК, я понял, как это сделать. Я подумал, что должен написать ответ здесь, если кто-то еще застрянет в той же проблеме!

Хитрость заключается в том, чтобы открыть новую вкладку, содержащую вашу страницу, и в случае "готового" события вы присоединяете ContentScript или ContentScriptFile. Метод attach() возвращает работника, которого вы можете использовать для связи между сценарием надстройки и ContentScript. Возможно, есть более эффективный способ сделать это, но у меня это работает без проблем.

function attachContentScript(){
    var worker = tabs.activeTab.attach({
        ContentScriptFile: self.data.url("myContentScript.js")
    });
    //Now you can commmunicate using worker and the content script
    //using port    
}
tabs.open(self.data.url("myPage.html"));
tabs.on("ready", attachContentScript)
var self = require("sdk/self");
url= self.data.url("yourpage.html");
var tabs = require("sdk/tabs");
tabs.open(url);

Страница по документации SDK

Другие вопросы по тегам