Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/04/2006, 12:03
rafadc
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
Antigüedad: 19 años, 4 meses
Puntos: 0
A ver. Os pongo un ejemplo. Es lo más sencillo que he podido hacer que ilustra mi problema.

Está compuesto de 3 archivos:

El ej.html es la página que tiene todo el contenido:

Código:
<html>
<head></head>
<body>
<script type="text/javascript" src="func.js"></script>
<a onClick="ajaxLink()">Aqui</a>
<div id="Content">
</div>
</body>
</html>
Como veis solo tiene un texto y un div que va a contener lo que nos devuelva la petición que haremos a través de AJAX.

El segundo fichero es ej2.html que contiene lo que se insertará en el div de la página anterior

Código:
<script type="javascript">
  function enlace() {
    alert("Hola");
  }
</script>

<a onClick="hola();">Hola</a>
Y por último func.js con todo el javascript:

Código:
function myGetElementById(e) {
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else e=null;
  return e;
}

  function ajaxLink() {   
  var request;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    request = new XMLHttpRequest();
//	http_request.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) { // IE
    request = new ActiveXObject("Microsoft.XMLHTTP");
  }

  request.open('GET', "ej2.html", true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  request.send(null);

  
  request.onreadystatechange = function () {

    if (request.readyState == 4) {
	  // Mostramos el contenido
      myGetElementById('Content').innerHTML = request.responseText;
	  
    } else if (request.readyState == 1) {
      myGetElementById('Content').innerHTML = "Cargando";
    }
  }

}
El problema está en la línea en negrilla en la que se cambia el contenido del div. Al cambiar solo el innerHTML no se llega a ejecutar en ningún momento el código javascript que contenga la página objetivo. He probado llamando a eval y el código se ejecuta pero las funciones no quedan definidas

¿Hay alguna manera de evaluarlo como si hubiese estado ahi desde un principio?