2010-12-20 6 views
1

Ich frage mich, ob es in JavaScript möglich ist zu verhindern, dass <script src="unwantedscript.js" type="text/javascript"></script> Objekt ausgeführt wird?Wie verhindert man das Herunterladen und Ausführen von Skripten?

Ich muss es so machen, als hätte es nie existiert. Gibt es ein Ereignis, bei dem ich die Ausführung eines Skripts verhindern kann (basierend auf dem Argument src)?

Ich ziele auf Internet Explorer 8, aber Lösung für andere Browser sind ebenfalls willkommen (obwohl es mir in nichts helfen wird;)).

Und bitte keine JQuery oder andere Bibliotheken. Ich schreibe in C++ ein IE-Add-on, aber ich kann Schnittstellen von MSHTML verwenden, um JavaScript zu 'verwenden'.

Antwort

1

In IE (MSHTML) ist es einfach. Sie 404 nur die HTTP-Anfrage, um unwantedscript.js zu erhalten.

+0

Was? Ich verstehe nichts von deiner Antwort;). Ich möchte nicht 'unerwünschtes.js'. Ich will nicht, was es macht und erzeugt. Ich möchte es einfach verschwinden lassen. –

+0

Sie sind mit dem HTTP-Protokoll vertraut? '404 Resource Not Found' ist der Antwortcode für URLs, die nicht aufgelöst werden können. Mit MSHTML können Sie eine HTTP-Antwort ersetzen. Also trickst du MSHTML dazu, zu glauben, dass die HTTP-Anfrage für "unervicenscript.js" den Fehler 404 zurückgibt. Voila, kein Skript mehr. – MSalters

+0

"MSHTML ermöglicht es Ihnen, eine HTTP-Antwort zu ersetzen" Wie? Haben Sie einen Link oder könnten Sie einen Beispielcode bereitstellen? –

0

Versuchen, eine kostenlose Hosting-Website-Anzeigen zu blockieren? Wenn Sie das tun, kann Ihre Site vom Hosting-Unternehmen gelöscht werden, also passen Sie auf.

Es gibt wirklich nichts, was man dagegen tun kann anders als es in bedingte Kommentare wickeln

<!--[if IE 5]> 
    <script src="foo.js"></script> 
<![endif]--> 

aber wenn es in die Seite eingespritzt wird, wahrscheinlich Sie können es nicht wickeln.

+0

Er schreibt ein Plug-In/Add-on, also sollte es auch wenn es injiziert wird, möglich sein, es zu blockieren. – syockit

0

Da Sie (scheinbar) keinen 404-Fehlercode für Skripts einfügen können, hier eine andere Idee: Verwenden Sie eine custom security provider und lehnen Sie die .js-URL ab.