window.location.replace in firefoxアドオンはクロム全体を削除します!
-
23-09-2019 - |
質問
私は使用しています nsIWebProgressListener
インターフェース URLが変更されたかどうかを確認します。ある場合は、リンクを書き直したいと思います。これがスニペットです(上記のリンクからページの下部から取得したコード)
var myExt_urlBarListener = {
QueryInterface: function(aIID)
{
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
aIID.equals(Components.interfaces.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
},
onLocationChange: function(aProgress, aRequest, aURI)
{
myExtension.processNewURL(aURI);
},
onStateChange: function(a, b, c, d) {},
onProgressChange: function(a, b, c, d, e, f) {},
onStatusChange: function(a, b, c, d) {},
onSecurityChange: function(a, b, c) {}
};
var myExtension = {
oldURL: null,
init: function() {
// Listen for webpage loads
gBrowser.addProgressListener(myExt_urlBarListener,
Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
},
uninit: function() {
gBrowser.removeProgressListener(myExt_urlBarListener);
},
processNewURL: function(aURI) {
if (aURI.spec == this.oldURL)
return;
// now we know the url is new...
start_work(aURI.spec);
this.oldURL = aURI.spec;
}
};
window.addEventListener("load", function() {myExtension.init()}, false);
window.addEventListener("unload", function() {myExtension.uninit()}, false);
変更を処理する機能:
function start_work(url)
{
result = check(url);
if (result) {
setCookie('bws', 'true', 1, '/');
window.location = result; // or window.location.replace, doesn't matter
}
}
これが起こることです!altテキストhttp://grab.by/20epご覧のとおり、ブラウザ/アドレスバー/クロム全体が消えました!
これについて何か助けがありますか?
正しい解決策はありません
他のヒント
シンプル:追加 window.content.location
所属していません StackOverflow