2010-06-03 11 views
5

mientras navegaba por la web y mediante stackoverflow.com encontré muchas publicaciones en foros, etc. donde este mensaje aparece en IE pero no en los otros navegadores. el problema es que las resoluciones varían mucho y no está claro para mí cuál es la mejor manera de evitar este problema.¿Alguien puede decirme exactamente qué significa que el objeto no admite esta propiedad o método en IE para JS?

Así que mi pregunta es, si alguien sabe exactamente, especificamente lo que este mensaje objeto no admite esta propiedad o método

medios, hace que, dice, ...

gracias por la ayuda. helle

Respuesta

8

Muy a menudo, el verdadero problema indicado por ese error es que algo que su código de espera no ser null es, de hecho, null.

var thing = document.getElementById('thing'); 
var x = thing.getAttribute('x'); 

Si no hay ningún elemento "cosa" en la página, la variable será nula y obtendrá el error.

En general, es una buena idea no pensar demasiado acerca de lo que IE intenta decirle con sus mensajes de error. Imagínese que el navegador está emitiendo un gruñido sordo, como un animal mal entrenado.

+1

+1 Para la broma: D – diosney

+0

Esta respuesta acaba de hacer mi día. +1 – MedMik

2

Significa que el objeto no es compatible con el método que está intentando llamar.

function Foo() { 

}; 

var something = new Foo(); 

something.fish(); // Error: because fish is not defined as a method. 
+1

enseñar a un objeto para los peces ... –

+0

@jeffamaphone: Esa sería la otra solución;) – Matt

0

bueno, después de otra gran búsqueda de las causas del problema (como en la especificación JS de Microsoft ... donde no se puede encontrar una tabla completa de errores) obtengo el mismo resultado que @Pointy. ¡seguro que @Matt también ha ayudado! IE realmente gruñe, cuando algo no funciona para él. No encontré ninguna especificación exacta del error hasta el momento.

y no es la hoja de vida othere: en muchos muchos casos su causada por nombrar JS objeto con el mismo nombre como el ID de DOM-Elements o DOM-Elementos, porque el IE - en algunos casos - los interpretes como beeing la misma . así que sobrescribes los objetos de arriba. para evitar esto, siempre use la sintaxis var [vaiablename] = [value]; para iniciar una variable. (El var es absolutamente lo necesite en el IE. mientras se navega a través de foros, descubrí que ayuda en muchos casos, pero hay remedio universel.

respecto Helle

Cuestiones relacionadas