2011-02-13 10 views
7

Por alguna razón, el uso de la condiciónwindow.top === ventana falsa condición en IE8

window.top === window 

en IE8 siempre se evalúa como falsa (en otros navegadores funciona bien). ¿Cuál es la razón de esto, y hay alguna otra forma para que esta condición funcione en todos los navegadores?

Gracias,

Joel

+0

... y definitivamente no dentro de un marco? : P – alex

+0

@alex - yup ... estoy usando este código dentro de una página que a veces se sirve dentro de un iframe. Necesito comprobar si es la ventana superior o un iframe – Joel

Respuesta

13

Es un tema muy complicado, pero la versión corta es, utilizar == al comparar las ventanas, no ===, debido a la vs aspecto de referencia "interno" "externa" de eso. Encontrará que (por ejemplo) window === self es falso en algunos navegadores.

+0

Utilizando "==" para comprobar si la ventana actual es un iframe o la ventana superior hará el trabajo en todos los navegadores principales (window.top == ventana) ? – Joel

+0

@Joel: Sí, eso es lo que entiendo, de todos modos. (Me tropecé con esto hace un par de meses, estoy tratando de encontrar la pregunta y la respuesta de StackOverflow que finalmente descubrí que me dejó en claro). –

+0

J. - ¡Gracias! Trataré de buscarlo yo mismo. Por el momento, actualizaré mi código para usar ==. – Joel

Cuestiones relacionadas