So stoppen oder ändern Sie die clientseitige JavaScript-Ausführung
Einführung
In bestimmten Szenarien , müssen Sie möglicherweise die Ausführung bestimmter JavaScript-Funktionen in einer clientseitigen Umgebung stoppen oder ändern. B. das Entfernen unerwünschter Funktionen oder das Anpassen des Verhaltens dynamischer Elemente.
JavaScript-Ausführung stoppen
Für moderne Browser wie Firefox das Ereignis beforescriptexecute kann verwendet werden, um die Ausführung von JavaScript abzufangen und zu verhindern, bevor sie stattfindet. Dadurch können Sie bestimmte
Um diese Methode zu implementieren, können Sie eine JavaScript-Funktion wie die folgende verwenden:
function checkForBadJavascripts(controlArray) { for (var J = controlArray.length - 1; J >= 0; --J) { var bSearchSrcAttr = controlArray[J][0]; var identifyingRegex = controlArray[J][1]; if (bSearchSrcAttr) { if (identifyingRegex.test(zEvent.target.src)) { stopBadJavascript(J); return false; } } else { if (identifyingRegex.test(zEvent.target.textContent)) { stopBadJavascript(J); return false; } } } }
Mit dem controlArray-Parameter können Sie Muster und entsprechende Aktionen für passende Skripte definieren. Sie könnten beispielsweise eine Regel haben, die die Ausführung eines Skripts stoppt, wenn seine Quell-URL einem bestimmten Muster entspricht:
checkForBadJavascripts([ [true, /evilExternalJS/i, null] ]);
Ändern des Verhaltens von JavaScript-Funktionen
Wenn Sie das Verhalten einer bestimmten JavaScript-Funktion ändern müssen, können Sie dynamische JavaScript-Techniken verwenden, um das Verhalten der Funktion einzufügen oder zu überschreiben Code.
Eine Möglichkeit, dies zu tun, besteht darin, die Funktion overrideFunction von zu verwenden [Greasemonkey](https://github.com/greasemonkey/greasemonkey):
GM_overrideFunction(window.init, function() { // Override the existing init function and modify its behavior as needed });
Alternativ können Sie die Funktion addJS_Node verwenden, um einen neuen JavaScript-Knoten einzufügen, der Ihren benutzerdefinierten Code ausführt:
addJS_Node('alert("Hooray, you are a millionaire!")');
Browserkompatibilität
Beachten Sie, dass während der Das Ereignis beforescriptexecute wird in Firefox unterstützt, in anderen Browsern wie Chrome derzeit jedoch nicht. Für andere Browser als Firefox müssen Sie möglicherweise eine vollständige Browsererweiterung verwenden, um die gewünschte Funktionalität zu erreichen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3