Foros del Web » Programando para Internet » Javascript »

Problema con getElementById

Estas en el tema de Problema con getElementById en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/05/2012, 19:28
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Problema con getElementById

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ú
  #2 (permalink)  
Antiguo 15/05/2012, 22:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con getElementById

Según parece tenés que cargar con ajax el javascript tambien, debería poner tu javascript en archivos externos, los css también, y cargarlos.
Mirá este ejemplo, quizás asi se entienda mejor
http://foros.emprear.com/ajax/html-css-js-ajax/
la primera parte es la que te interesa.

Si analizás la script
http://foros.emprear.com/ajax/html-c...x/cargaAjax.js
vas a ver que contiene 2 funciones, una para cargar el html en el div, y la otra ppra cargar los recursos (los css y unafuncion.js)

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 16/05/2012, 06:19
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Problema con getElementById

Muchas gracias por tu respuesta. Yo cargo independientemente los scripts normales y los de ajax en archivos JS en la página principal.asp. Siempre que cargo una página externa en un div mediante este método, la página externa "hereda" los scripts de la página principal, pero en este caso no es así.

Voy a revisar la información que me has proporcionado y te comento luego, pues ahora estoy de salida y recién me he levantado.

Un saludo desde el Perú
  #4 (permalink)  
Antiguo 16/05/2012, 07:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema con getElementById

lo mismo, pero con prototipos
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 16/05/2012, 09:39
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Problema con getElementById

Gracias a ambos por las respuestas. Voy a ver como lo implemento.

Etiquetas: formulario, funcion, getelementbyid, html, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:15.