Ich versuche, window.location
mit Greasemonkey am Anfang des Dokuments selektiv zu deaktivieren.
Ich möchte JavaScript nicht vollständig deaktivieren, sondern nur einige Weiterleitungen deaktivieren, die mit Javascript durchgeführt wurden. Sie sehen so aus:
%Vor% Sie können den window.location
-Prototyp nicht ändern, da dies eine "native Eigenschaft" von window
ist und es nicht konfigurierbar .
Bei Firefox (Greasemonkey), wenn Sie versuchen, dies zu überschreiben, erhalten Sie Fehler wie:
TypeError: kann die nicht konfigurierbare Eigenschaft 'location' nicht neu definieren
und
Fehler: Berechtigung zum Schützen der nativen Eigenschaftseigenschaft
... je nachdem, wie Sie es versuchen. Andere Browser geben ähnliche Fehler.
Um diese Art der Verlagerung zu blockieren, müssen Sie das Javascript der Seite von Fall zu Fall beeinflussen.
Siehe "Ausführung der JavaScript-Funktion stoppen (Client-Seite) oder optimieren" für eine allgemeine Vorgehensweise, die in Firefox funktioniert . Dies kann je nach dem genauen Code Ihrer Zielseite viel einfacher sein.
Ich glaube nicht, dass es möglich ist.
window.location
nicht überschreiben (schlägt im Hintergrund fehl) location.__proto__ = Something.prototype
neu definieren
location.constructor.prototype
ist im Grunde Object.prototype
__definesetter__
schlägt automatisch fehl Object.defineProperty
gibt einen Fehler wie, TypeError: Cannot redefine property: href
delete window.location
und delete window.location.href
tun nichts Ich habe keine Ideen mehr ...
ziemlich spät, aber Sie können es einfach tun, ohne das ganze Skript mit Object.prototype.watch
:
Tags und Links javascript window.location prototype greasemonkey