2009-07-16 19 views
3

Ich mache einige Analysen von einigen Javascript und ich möchte Javascript aktiviert, aber deaktivieren Sie alle alert() - Boxen und self.location Weiterleitungen.Native Methoden in Javascript überschreiben

Momentan verwende ich einen Regex-Proxy, aber das scheint übertrieben zu sein.

Ich kann einige native Methoden außer Kraft setzen, andere aber nicht in Firefox dh

window.alert = function('') { return null; } 
alert('test!') // works as expected 

Jedoch, wenn ich in ähnlicher Weise versuchen, überschreiben window.location = (die ein Alias ​​für den Methodenaufruf window.assign ist()) es funktioniert nicht

window.location.assign = function('') { return null; } 
window.location.assign('#') // redirects :(

ich habe versucht Window.prototype.location.assign Einstellung, aber ich erhalte eine Ausnahme „Kann nicht Eigenschaften eines WrappedNative ändern“.

Gibt es Alternativen zu NoScript für feinkörnige JS-Steuerelemente oder ist es möglich, bestimmte Native JS-Methoden zu überschreiben?

+0

Warum möchten Sie dies tun können? Ich habe Alarme gesehen und bestätigt, dass sie überschrieben wurden, um benutzerdefinierte Dialoge zu erstellen, aber warum sollte der Speicherort überschrieben werden? – Prestaul

+0

Arbeiten mit etwas bösartigem Code –

Antwort

2

Diese suggested solution zum Deaktivieren alert könnte funktionieren.

+0

Ich denke, http://www.adsafe.org/ ist genau das, was ich gesucht habe, Danke! –

Verwandte Themen