Comment arrêter ou modifier l'exécution de JavaScript côté client
Introduction
Dans certains scénarios , vous devrez peut-être arrêter ou modifier l'exécution de fonctions JavaScript spécifiques dans un environnement côté client. Cela peut être dû à diverses raisons, telles que la suppression de fonctionnalités indésirables ou l'ajustement du comportement des éléments dynamiques.
Arrêter l'exécution de JavaScript
Pour les navigateurs modernes comme Firefox, l'événement beforescriptexecute peut être utilisé pour intercepter et empêcher l’exécution de JavaScript avant qu’elle ne se produise. Cela vous permet de cibler des balises ou des éléments
Pour implémenter cette méthode, vous pouvez utiliser une fonction JavaScript comme la suivante :
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; } } } }
Le paramètre controlArray vous permet de définir des modèles et les actions correspondantes pour les scripts correspondants. Par exemple, vous pourriez avoir une règle pour arrêter l'exécution d'un script si son URL source correspond à un modèle spécifique :
checkForBadJavascripts([ [true, /evilExternalJS/i, null] ]);
Modification du comportement d'une fonction JavaScript
Si vous devez modifier le comportement d'une fonction JavaScript spécifique, vous pouvez utiliser des techniques JavaScript dynamiques pour injecter ou remplacer le comportement de la fonction. code.
Une façon de procéder consiste à utiliser la fonction overrideFunction de [Greasemonkey](https://github.com/greasemonkey/greasemonkey):
GM_overrideFunction(window.init, function() { // Override the existing init function and modify its behavior as needed });
Vous pouvez également utiliser la fonction addJS_Node pour insérer un nouveau nœud JavaScript qui exécute votre code personnalisé :
addJS_Node('alert("Hooray, you are a millionaire!")');
Compatibilité des navigateurs
Notez que pendant que le script précédent s'exécute L'événement est pris en charge dans Firefox, il n'est actuellement pas pris en charge dans d'autres navigateurs comme Chrome. Pour les navigateurs autres que Firefox, vous devrez peut-être utiliser une extension de navigateur complète pour obtenir la fonctionnalité souhaitée.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3