jetpackを使用した Firefox 拡張機能には、contentScriptが添付されたパネルがあります。パネルは、最初に URL を表示するように設定されています。パネルの場所が (リンクまたは をクリックして) 変更されると、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");
});
};