在使用jetpack的 Firefox 扩展中,我有一个附加了contentScript的面板。该面板设置为最初显示一个 URL。如果面板更改其位置(通过单击链接或 a ),我无法再向 contentScript 发送消息(它会引发 ERR_DESTROYED,“页面已被破坏,无法再使用。”)。document.location=
当位置改变时,有没有办法让我的 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");
});
};