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

Ayuda con window.onload

Estas en el tema de Ayuda con window.onload en el foro de Frameworks JS en Foros del Web. En fin, pensé que nunca tendría que pedir ayuda por un tema como éste, pero no me veo con salidas. LLevo toda la mañana y ...
  #1 (permalink)  
Antiguo 25/03/2009, 09:27
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Ayuda con window.onload

En fin, pensé que nunca tendría que pedir ayuda por un tema como éste, pero no me veo con salidas.

LLevo toda la mañana y toda la tarde para resolver un puñetero problema que los majos de Microsoft me están dando con su Explorer 7 (supongo que los demás también).

El caso es que tengo la página estructurada así:

En el header implemento los archivos .js para los incluir Prototype, SaC y el archivo ajax.js, que no es más que un archivo con unas cuantas funciones y unas peticiones xmlhttp.

Código PHP:
<script src="scripts/lib/prototype.js" type="text/javascript"></script>
<script src="scripts/lib/scriptaculous.js?load=effects" type="text/javascript"></script> 
<script type="text/javascript" src="scripts/ajax.js"></script> 
Y el archivo ajax .js tiene lo siguiente:

Código PHP:
window.onload iniciar;

function 
iniciar(){
    
alert(estiloActivo());
    
alert(tipoNavegador());
     $(
'tagboard').hide();
    
setTimeout("quitarCargando()",500);

Los alerts los tengo ahi tan solo para probar que las funciones retornan lo que quiero, nada más. Si los quito la cosa sigue igual.

La cuestion es que funciona en Firefox, Opera, Safari y Chrome. Pero por alguna extraña razón, en IExplorer, no. Qué raro, ¿verdad?

Probé poniendo tambien:
Código PHP:
window.onload = function(){
     
iniciar();

y
Código PHP:
window.onload = function(){
    
alert(estiloActivo());
    
alert(tipoNavegador());
     $(
'tagboard').hide();
    
setTimeout("quitarCargando()",500);

Incluso he llegado a poner el engendro de
Código PHP:
<body onload="iniciar();"
Pero tampoco funcionaba.

Así que yo al menos llegué a la conclusión de que IE no me reconoce el archivo ajax.js. Y no se porqué, cuando el resto de navegadores (incluso Konqueror, que se me olvidó mencionarlo) lo leen y ejecutan la órdenes perfectamente. La única manera de que funcione en IE es escribiendo TODO el codigo JS en el index, lo que para mi no es una opción a tener en cuenta, pues me lía y ensucia el código HTML.

Ningún otro archivo posee el evento window.onload.

Alguien para ayudarme??
  #2 (permalink)  
Antiguo 25/03/2009, 09:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con window.onload

¿Cuál es el error que te da en Internet Explorer?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/03/2009, 09:55
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: Ayuda con window.onload

No me lanza ningún error. Ese es el problema. Con Firebug lo he repasado y no encuentro nada.

Me decía que listo pero con errores en la página, así que pensé que podría haber algún tipo de incompatibilidad con Prototype y ScriptaCulous, así que reescribí las funciones. Un ejemplo.
Código PHP:
//Función para la transición de cargando
function quitarCargando(){
    if(
tipoNavegador() != "explorer"){
        
alert("mierda de explorer");
        $(
'loading2').innerHTML "<span class='separado'>Cargado</span>";
        new 
Effect.Fade("oscura",{duration2.0});
        new 
Effect.DropOut("loading");
    } 
    else{
        
document.getElementById('loading').style.display "none";
        
document.getElementById('oscura').style.display "none";
    }

'oscura' es la capa transparente que oscurece el fondo , 'loading' es la capa madre de la caja de cargando, con posicion fixed y centrada en la pantalla, y 'loading2', la capa que está dentro de 'loading' y que muestra el texto.

Pero sigue sin fucionar.
  #4 (permalink)  
Antiguo 25/03/2009, 10:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con window.onload

Si te dice "Listo. Pero con errores en la página". Haz doble click sobre el ícono de error que aparece en la esquina inferior izquierda, allí verás cuál es el error que está dando.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 25/03/2009, 10:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Ayuda con window.onload

Hola:

El hecho de usar librerías debería implicar estudiar su implementación, al menos el funcionamiento básico... todas las librerías implementan el odioso método "$", que por snobismo todo el mundo asocia con un alias de document.getElementById()... pero no es así, y como son tan originales sus programadores, también implementan cosas como init, load, etc...

Por lo que veo usas más de una librería por lo que voy a mover el tema a ese foro...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 25/03/2009, 10:53
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
De acuerdo [SOLUCIONADO]Ayuda con window.onload

Ya encontré en problema. Tras separar el código y probar funciones por separado.
Tenía una ´antes de una llave {, e IE detenía el script, cosa que no entiendo porqué otros no, y porqué cuando estaba dentro de un método que además, funcionaba.

Tampoco entiendo porqué el FIrebug no me mostró nada y el Notepad++ tampoco. Bueno, me despido tras haber perdido un día de mi vida.

Saludos y gracias a ambos!

Última edición por SetheR; 25/03/2009 a las 11:06
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 20:43.