window.location.replace in Firefox Addon entfernt das gesamte Chrom!
-
23-09-2019 - |
Frage
Ich benutze das nsIWebProgressListener
Schnittstelle Um herauszufinden, ob eine URL geändert wurde. Wenn es so ist, würde ich den Link neu schreiben. Hier ist ein Snippet (Code von unten auf der Seite aus dem obigen Link)
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);
Und eine Funktion, um die Änderung zu bewältigen:
function start_work(url)
{
result = check(url);
if (result) {
setCookie('bws', 'true', 1, '/');
window.location = result; // or window.location.replace, doesn't matter
}
}
Folgendes passiert!ALT Text http://grab.by/20epWie Sie sehen können, ist der gesamte Browser/Adressleiste/Chrom verschwunden!
Irgendwelche Hilfe dazu?
Keine korrekte Lösung
Andere Tipps
Einfach: Hinzufügen window.content.location
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow