Llevo unas horas sin parar intentando borrar unas funciones cargadas por ajax y no se porque
removeChild y
replaceChild no me funcionan :S.
Buscando por internet me he topado con vuestro post y dado que parece que hay conocimientos :) me gustaría saber si sabéis como solucionarlo:
Quiero hacer una web en ajax y cada página que pasó a través de ajax carga una serie de funciones y elementos nuevos en javascript y css... pero el problema es que he visto que al menos en Internet Explorer 6, 7 y Firefox las funciones se van acumulando y no borra las anteriores (de otras páginas)...
He hecho muchas pruebas y muchos ejemplos, os puedo dejar este que se ve a simple vista:
Código PHP:
<html>
<head>
<script>
java1="var segundos=1000;function Vamos() {var prueba=document.getElementById(\"prueba\");prueba.innerHTML = \"ok\";}timer = setTimeout(\"cuentaAtras()\", 1000);function cuentaAtras(){ var cuenta=document.getElementById(\"cuenta\"); cuenta.innerHTML=segundos; segundos--; timer = setTimeout(\"cuentaAtras()\", 1000);}";
java2="function Vamos() {var prueba=document.getElementById(\"prueba\");prueba.innerHTML = \"no\";}timer = setTimeout(\"cuentaAtras()\", 1000);";
var viejoscript;
function CargarJava() {
var prueba=document.getElementById("prueba");
viejoscript = document.createElement('script');
viejoscript.text = java1;
viejoscript.type = 'text/javascript';
prueba.appendChild(viejoscript);
}
function CargarJava2() {
var prueba=document.getElementById("prueba");
var elemento = prueba.getElementsByTagName('script');
elemento=elemento[0];
nuevoScript = document.createElement('script');
nuevoScript.text = java2;
nuevoScript.type = 'text/javascript';
//prueba.appendChild(nuevoScript);
if(elemento.src!=null && elemento.src.length>0) {
nuevoScript.src = elemento.src;
}
elemento.parentNode.replaceChild(nuevoScript,elemento);
}
</script>
</head>
<body>
<a href="javascript:CargarJava();">Cargar Java 1</a>
<a href="javascript:CargarJava2();">Cargar Java 2</a>
<div id="prueba">Hola</div>
<a href="javascript:Vamos();">Ejecutar Script</a>
<a href="">¿BORRAR JAVA GRABADO EN PRUEBA?</a>
<div id="cuenta"></div>
</body>
</html>
Al dar a "Cargar Java 1" veremos un contador que empieza desde 1000 y al dar a "Cargar Java 2" quiero que se borre el script anterior, se puede ver que no se borra ya que el secundero baja de 2 en dos al añadir "setTimeout" y la función "cuentaAtras" no debería de existir en Java2.
En el ejemplo está todo de forma basta y con 2 funciones separadas, necesitaría saber como borrar completamente las funciones javascript cargadas o reemplazarlas correctamente
No se si podréis ayudarme y si va en este post... pero creo que lo que habéis explicado habla justo de lo que estoy preguntando.
Muchas gracias!