Javascript 如何在jetpack面板更改位置时保持contentScript工作

Javascript 如何在jetpack面板更改位置时保持contentScript工作,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,在使用的Firefox扩展中,我有一个附加的。该面板设置为最初显示URL。如果面板更改了其位置(通过单击链接或文档。位置=),我将无法再向contentScript发送消息(它会引发一个错误,“页面已被销毁,无法再使用”) 当位置发生变化时,有没有办法让我的contentScript继续工作(或者至少重新加载)?或者我应该完全避免改变位置而仅仅操纵原始面板内容吗 下面是一个显示行为的基本脚本: exports.main = function (options, callbacks) { pa

在使用的Firefox扩展中,我有一个附加的。该面板设置为最初显示URL。如果面板更改了其位置(通过单击链接或
文档。位置=
),我将无法再向contentScript发送消息(它会引发一个错误,“页面已被销毁,无法再使用”)

当位置发生变化时,有没有办法让我的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");
  });
};
得到了一个关于:

现在,您应该避免更改 面板的位置和仅操纵 原始面板内容,自 没有办法保存内容 脚本正在运行。但我们应该 可能会使小组的内容 脚本在其位置发生变化时被重新加载 变化

或者,我可以在面板内部使用iframe。

在以下位置上获得了一个:

现在,您应该避免更改 面板的位置和仅操纵 原始面板内容,自 没有办法保存内容 脚本正在运行。但我们应该 可能会使小组的内容 脚本在其位置发生变化时被重新加载 变化

或者,我可以在面板内使用iframe