在使用jetpack的Firefox扩展程序中,我添加了panel contentScript。该面板设置为最初显示URL。如果面板更改其位置(通过单击链接或document.location=
),我将无法再向内容脚本发出消息(它会引发ERR_DESTROYED,“页面已被破坏,无法再使用“)。
当位置发生变化时,有没有办法让我的内容脚本工作(或者至少重新加载它)?或者我应该完全避免更改位置只是操纵原始面板内容?
这是一个显示行为的最小脚本:
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");
});
};
答案 0 :(得分:1)
在answer from Myk Melez上获得了Jetpack google group:
目前,你应该避免改变 面板的位置,只能操纵 原来的面板内容,自此 没有办法保留内容 脚本工作。但我们应该 可能会成为小组的内容 脚本在其位置时重新加载 变化。
或者,作为lcamacho said,我可以在面板中使用iframe。