Связь между скриптом дополнения и страницей, упакованной в моем дополнении 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);