Por ejemplo, tengo una <script> alert(1) <script> en la página web. Ahora lo que quiero hacer es cambiarlo a <script> alert (2) <script> después de cargarlo y antes de ejecutarlo, inmediatamente. ¿Puedo tener éxito?
La respuesta corta es no; solo modificando la página antes de que se sirva
Como puede ver, no puede interceptar el script con script
Se ejecutará cuando se analice.
window.addEventListener("DOMContentLoaded",function() { document.scripts[1].textContent = ""; alert(2) }) <script>alert(1)</script>Aquí hay un truco
window.addEventListener("DOMContentLoaded",function() { alert(3) }) <script>// if you can insert this before you can intercept alert const saveAlert = window.alert; window.alert = function(str) { saveAlert(2) window.alert = saveAlert; }; </script> <script>alert(1)</script>Prueba de que la otra respuesta no funciona.
var h = document.getElementById('hello'); h.textContent = 'alert(2)' <script type='text/javascript' id='hello'> alert(1) </script>Digamos que establece su etiqueta de secuencia de comandos así
<script type='text/javascript' id='hello'> alert(1) </script>Entonces puedes obtener el elemento dom así:
var h = document.getElementById('hello');A continuación, puede modificar el elemento de esta manera:
h.innerHTML = 'alert(2)'Sugeriría también que use algo como JQuery onready para asegurarse de que el código de modificación se ejecute antes de la alerta en las etiquetas del script.