В расширении Firefox, использующем jetpack , у меня есть панель с прикрепленным contentScript . Панель настроена на первоначальное отображение URL. Если панель меняет свое местоположение (с помощью щелчка по ссылке или document.location=
), я больше не могу отправлять сообщения на contentScript (возникает ошибка ERR_DESTROYED «Страница была уничтожена и больше не может использоваться»). ).
Есть ли способ сохранить мой contentScript работающим (или хотя бы перезагрузить его) при изменении местоположения? Или я должен избегать изменения местоположения только для манипулирования оригинальным содержимым панели?
Вот минимальный скрипт, показывающий поведение:
exports.main = function (options, callbacks) {
panel = require("panel").Panel({
contentURL: "http://stackoverflow.com/",
contentScript: 'self.port.on("foo", function() { console.log("foo received"); });'
});
widget = require("widget").Widget({
id: "test-panel",
label: "test panel",
contentURL: "http://stackoverflow.com/favicon.ico",
panel: panel
});
panel.on("show", function() {
panel.port.emit("foo");
});
};