Buenas noches:
Veamos..... tengo esta línea en mi código JS
var elem2 = document.getElementById("contenedor4");
y esta en un archivo JS cargado en la página
PRINCIPAL.ASP
En esta página hay un div con el id
detalle en el cual se carga la página
listado.asp mediante este código:
Cita: function detalles()
{
if (document.getElementById)
{
var el1 = document.getElementById("detalle");
el1.style.display = (el1.style.display == 'none') ? 'block' : 'none';
}
var req = false;
if (window.XMLHttpRequest) // For Safari, Firefox, and other non-MS browsers
{
try
{req = new XMLHttpRequest();}
catch (e)
{req = false;}
}
else if (window.ActiveXObject) // For Internet Explorer on Windows
{
try
{req = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e)
{
try
{req = new ActiveXObject("Microsoft.XMLHTTP");}
catch (e)
{req = false;}
}
}
//req.expires=-1;
var element = document.getElementById("detalle");
if (!element)
{alert("El ID " + id + "enviado a clientSideInclude es erróneo. Se necesita un elemento DIV o SPAN con este ID en el módulo."); return;}
if (req)
{
// Synchronous request, wait till we have it all
url="listado.asp";
req.open('GET', url, false);
req.send(null);
element.innerHTML = req.responseText;
}
else
{element.innerHTML = "Lo sentimos pero su navegador no soporta objetos XMLHttpRequest. Esta página requiere Internet Explorer 8 o superior para Windows, Firefox para cualquier sistema, o Safari. Otros navegadores compatibles también pueden ser utilizados.";}
}
Esta función es invocada mediante un botón de formulario simple.
Ahora bien, la llamada con
getElementById que indico al inicio de este post, hace referencia a un div que se encuentra en la página
listado.asp y simplemente NO lo encuentra. Sin embargo, obvio, si pongo el código de la página
listado.asp dentro de la página
principal.asp justo donde esta el div
detalle, pues funciona normal y encuentra el elemento.
No tomé atención a este detalle porque cuando hago esto, el cargar páginas en un div, las funciones cargadas en la página
principal.asp son usadas por la página
listado.asp sin ningún problema, EXCEPTO estas llamadas con
getElementById.
Comprobé esto colocando estas líneas adicionales
Cita: var elem2 = document.getElementById("contenedor4");
if(elem2==null)
{alert("no se encontró contenedor4");}
Por eso se que este tipo de llamadas no funcionan cuando se carga la página dentro de un div.
¿Alguna sugerencia?
Espero haberme explicado bien
Un saludo desde Lima, Perú