2011-09-11 24 views

Respuesta

8
if (self !== top) 
    top.location.replace(self.location.href) 

que es como se rompe fuera de un marco

+0

¿rompería esto el marco de la página del lienzo de Facebook? – MonsterMMORPG

+0

No tengo ni idea, pero siempre y cuando esté en un marco físico o iframe debería (nunca tocó FB en mi vida). –

+0

bien le daré una oportunidad al menos. Puse este código de javascript antes de cerrar la etiqueta de cabecera y debería funcionar ¿verdad? – MonsterMMORPG

2

Esto se puede hacer de manera clara Javascript desde top y location son los dos objetos unidos a la window objeto global proporcionada en todos los principales navegadores.

if (top.location != location){ 
    location.href = 'http://google.com'; 
} 
+0

Veo lo que estás intentando ... pero en realidad ... no tienes que esperar a que DOM se cargue antes de comprobar la ubicación y redirigir ... Así que esto no es realmente una versión de jQuery * –

+0

Muy cierto. Acabo de tener un caso crónico de envolver todo en '$ (document) .ready (function() {});' porque si lo hago todo el tiempo, nunca lo olvidaré: P – Joe

+0

ah veo. buen punto XD –

2

si realmente desea una solución jQuery aquí está (Crossbrowser, y funciona bien incluso si $ es algo más en la primicia):

(function($) { 

    if($(document) !== top) 
    top.location.replace($(document).location.href) 

})(jQuery); 

A pesar de que su innecesario y excesivo porque se puede hacer más fácil con JavaScript vanilla.

+0

¿No sería mejor realizar la contabilidad del alcance simplemente usando "jQuery" en esos 2 puntos en lugar de "$"? –

Cuestiones relacionadas