Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas con document.getElementById('').innerHTML

Estas en el tema de Problemas con document.getElementById('').innerHTML en el foro de Frameworks JS en Foros del Web. Buenas tardes, Tengo mucho que no escribo en los foros, pero volví porque necesito una ayudita con AJAX. Estoy desarrollando una WEB y me esta ...
  #1 (permalink)  
Antiguo 25/03/2010, 14:53
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Problemas con document.getElementById('').innerHTML

Buenas tardes,

Tengo mucho que no escribo en los foros, pero volví porque necesito una ayudita con AJAX. Estoy desarrollando una WEB y me esta presentando este inconveniente.

Cuando llamo una funcion en Ajax.js, este se me ejecuta perfectamente, le mostrare una partesita del Ajax.js

Cita:
var myRequest = getXMLHTTPRequest();
function abrirScript(url){
myRequest.open("GET", url, true);

myRequest.onreadystatechange = function(){
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
} else {
alert("An error has occurred: "+ myRequest.statusText);
}

}

}
myRequest.send(null);

}
function cerrarAdd(qtype){
document.getElementById('script').innerHTML='';
location.href=".?qtype="+qtype+"&close=yes";
}
Donde getXMLHTTPRequest() esta dentro tambien del ajax.js y es de esta manera esa funcion

Cita:
function getXMLHTTPRequest()
{
var request = false;
try
{
request = new XMLHttpRequest(); /* e.g. Firefox */
}
catch(err1)
{
try
{
vrequest = new ActiveXObject("Msxml2.XMLHTTP");
/* some versions IE */
}
catch(err2)
{
try
{
request = new ActiveXObject("Microsoft.XMLHTTP");
/* some versions IE */
}
catch(err3)
{
request = false;
}
}
}
return request;
}
Esto esta supuesto a funcionarme muy bien y lo hace muy bien pero aqui viene mi pregunta.

Cuando ejecuto la funcion abrirScript('url');, esta se me ejecuta sin ningun problema y me pone mi ventanita encima de todo muy bien, en esta ventanita tengo un boton llmado CERRAR el cual cuando le dan click ejecuta la funcion cerrarAdd y tambien funciona perfectamente.

El inconveniente esta cuando vuelvo a llamar la funcion abrirScript('url'), el Internet Explorer 8 me arroja el siguiente error:

Cita:
Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
Timestamp: Thu, 25 Mar 2010 20:45:35 UTC


Message: 'document.getElementById(...)' is null or not an object
Line: 41
Char: 3
Code: 0
URI: http://xxxxx/xxxxx/scripts/ajax.js
Pero si sigo navegando en la web dentro de mi misma web, hay veces que vuelve a funcionar y no se el porque no funciona.

Como nota adicional la Linea 41 esta dentro de la funcion
Cita:
...
40. if(myRequest.status == 200) {
41. document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
42. } else {
....
Espero haber sido lo bastante claro, este error no me pasa ni en Mozilla ni en Chrome, pero necesito que funcione perfecto en el Internet Explorer.

Gracias de antemano

NOTA: Tengo un <div id='script'></div> en la pagina que utilizo estas funciones.
__________________
________________________________
Moisés Bretón
[email protected]
  #2 (permalink)  
Antiguo 26/03/2010, 13:43
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Problemas con document.getElementById('').innerHTML

Gracias a todos lo que vieron pero no pudieron aportar, admito que no puse la información necesaria, pero no la puse porque obvie lo mas obvio valga la redundancia.

Aquí esta la solucion y ojala sirva para alguien mas.

Resulta que el <div id="script"></div> lo ponia siempre al final de la pagina en donde lo utilizaba, asi que como este cargaba de ultimo el JavaScript me daba un error porque cargaba la funcion antes de que cargara el el DIV.

No se si me di a entender pero es mas o menos asi.

Cita:
<html>
.....
.
.
.
llamo a ajax.js
.
.
.
.
.
<div id="script"></div>
</html>
Entonces como vemos, el ajax.js esta primero que el div que voy a utilizar por ende me daba NULL el error porque todavia cuando el ajax.js se ejecutaba document.getElementById('script').innerHTML, el DIV no habia cargado aun.

Por lo que procedi a ponerlo de esta manera.

Cita:
<html>
.....
.
.
.
<div id="script"></div>
llamo a ajax.js
.
.
.
.
.
</html>
Espero que le sirva a alguien esto. Gracias de todas maneras.
__________________
________________________________
Moisés Bretón
[email protected]
  #3 (permalink)  
Antiguo 31/03/2010, 17:34
Avatar de jpenagos  
Fecha de Ingreso: marzo-2010
Ubicación: cali valle
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con document.getElementById('').innerHTML

por que utilizas jquery te simplifica todo de una manera sorprendente !!

Etiquetas: ajax
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 14:50.