tengo un script que tiene una funcion que deberia quitar los scripts viejos y agregar otros scripts, la cosa es que si eliminé el script y por alguna razon, uno de los nuevos scripts que deberia agregarse es el mismo que el anterior que eliminado el navegador me da error el nombre de la variable ya existe. en otras palabras, el script eliminado aún vive en el navegador, y sus funciones y variables aún están en la memoria y son ejecutables. a continuación se encuentran las dos funciones, una para eliminar los scripts antiguos y la otra para agregar nuevos scripts.
function remove_js() { var scripts = document.querySelectorAll("script[data-ams-reload='true']") let urls = [] for (let i = 0; i < scripts.length; i++) { scripts[i].remove() let src = scripts[i].getAttribute('src') urls.push(src) } return urls } function reload_js(scripts) { var body = document.querySelector('body') for (let i = 0; i < scripts.length; i++) { var newscript = document.createElement('script'); newscript.src = scripts[i]; newscript.setAttribute('data-ams-reload', 'true') body.appendChild(newscript); } }¿Alguien sabe cómo anular este escenario?
Cuando carga JavaScript en su página, no es como CSS que se ejecuta en "tiempo de ejecución". Si carga JS, se carga en la memoria y luego estará siempre disponible.
Se puede lograr una solución para su caso: anular las funciones que no desea que se ejecuten desde el JS que desea eliminar.
Algo como esto - función original:
function sayHello() { console.log("Hello!"); //calling sayHello will print "Hello!" }Ahora, anulándolo así:
function sayHello() { return false; } De esa manera, llamar a sayHello devolverá falso y no hará nada.