2011-12-24 11 views
6

He notado algunos errores en la función window.onload. (Tal vez es mi error) El problema es cuando utilicé la siguiente función simple, funcionó en todos los navegadores, pero Chrome.función window.onload problema

var name=$("#name"); 
window.onload = function(){ 
    name.fadeIn(500); 
}; 

A continuación, sólo por interés, intentaron éste también:

var name; 
window.onload = function(){ 
    name=$("#name"); 
    name.fadeIn(500); 
}; 

En todos los casos anteriores, las herramientas dev de Chrome me dio este mensaje de error:

Uncaught TypeError: Object [object Object] has no method 'fadeIn' 

he resuelto este error con el siguiente código

window.onload = function(){ 
    var name=$("#name"); 
    name.fadeIn(500); 
}; 

Pero ahora quiero una explicación, ¿por qué no funcionó primero 2 piezas de código?

+1

No sé sobre el segundo ejemplo, pero ese primer bloque de código puede estar solicitando un elemento que aún no existe. –

+0

Memoré 'nombre' antes de trabajar con él,' var nombre = $ ("# nombre"); 'y de nuevo, en todos los demás navegadores funcionó solo CHROME dio error –

+0

¿Qué quiere decir con caché? No soy un experto de JQuery, pero si las funciones '$()' son esencialmente funciones 'getElementById()', el elemento 'name' puede no haberse cargado aún en el DOM. Sin embargo, por qué es exclusivo de Chrome es un rompecabezas. Por cierto, ¿pones tus guiones en la parte inferior de la página? –

Respuesta

4

Creo que esto podría deberse a una variable global llamada name. Si llama nombre algo diferente, nombre1, funciona en cromo. http://jsfiddle.net/R2PuZ/1/

+1

OMG)). Ni siquiera pensé en esto. Gracias –

+0

Sí, jugué un poco con eso ... al asignarle un valor a una variable global en Safari reconoceré que es un elemento, pero no tendrá ninguna (o al menos algunas) propiedades (como innerHTML) . Sin embargo, funciona en Firefox. Muy extraño. –

+0

sí, una de esas cosas que te hace quemar el aceite de medianoche :) Es muy interesante que el nombre esté configurado en "resultado", que en jsfiddle parece provenir del nombre del iframe donde se muestra el resultado. Sigue jugando con eso ... –

Cuestiones relacionadas