Javascript para evitar que la página se muestre en un frame

  • Por
Un sencillo javascript para evitar que nuestra página se muestre dentro de un frame y se muestre en todo el espacio de la ventana.
Existe una utilidad muy sencilla sobre el control de frames en Javascript que también resulta muy útil para cualquier sitio web. Se trata de evitar que nuestra página se muestre dentro de cualquier división de frames y puede ser muy interesante para evitar que un enlace de cualquier sitio web introduzca nuestra página dentro de su diseño o estructura de menús.

Puede que aparecer dentro de un frame en muchos casos no nos importe demasiado, pero reducen el espacio para mostrar nuestra propia página y la encorsetan en un diseño que no tiene porque hacerle ningún bien.

El script

Tan solo una línea de código es suficiente para crear este efecto. Esta línea se puede poner en cualquier parte del documento HTML, aunque sería recomendable que quedase por la parte superior o dentro de la cabecera, para que tenga que cargarse la página entera para expandirse a todo el espacio de la ventana.

<script language="JavaScript">
<!--// evito que se cargue en otro frame
if (top.location != self.location)top.location = self.location;
//-->
</script>


En este script se comprueba si las propiedades top.location, que hace referencia a la URL de la declaración de frames, en caso de que hubiera y self.location, que hace referencia a la URL del documento donde está el script.

Si las dos URLs son iguales significaría que la página no está cargada dentro de un frame y si son distintas querría decir que sí esta mostrándose en el espacio de un marco.

En caso de que sean distintas, simplemente se indica que en la ventana del navegador al completo (top.location) se muestre la URL de la página donde está el script (self.location).

No tiene muchas complicaciones. Se puede ver en una página aparte.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Master_Leviatan

25/5/2006
Esta bonito el script, pero existe un inconveniente.

Esto solo me serviria unica y exclusivamente si mi pagina la desea cargar alguien desde su pagina y este alguien es posible que este dentro de otro servidor y no dentro del que se encuentra la pagina con el script por tanto al momento de querer ejecutar dicho procedimiento se generaria un acceso denegado

yomqro

14/6/2006
no te entendi mano, pero bueno.

rafael8a

02/10/2006
No entendi el sript, vi el codigo fuente de ambas ventanas de ejemplo y no entendi... si alguien pudiera explicarlo de forma mas clara se lo agradeceria mucho.. me interesa usarlo.

Jimmy

08/3/2007
alguien sabe como evadir este codigo??

scar

07/12/2008
Un poder me salvo

eriko

30/9/2009
no lo entiendo
Me pasa exactamente igual que a rafael8a!

Si alguien pudiera explicar un poco mejor este código...

Gracias

Matusa

09/2/2010
iframe
mil gracias, me estaba volviendo loca el navegador opera, y con este sencillo script se
ha solucionado

Erick

13/12/2011
Buen aporte
Excelente aporte, funciona cuando tienes varios iframes, en mi caso me sirvio en una interfaz donde tenia el menu principal que lo manipulo con javascript en donde tengo un iframe que carga las opciones del menu, y dentro de este iframe debia cargar una encuesta, por lo que acudi a acceder a insertar otro iframe dentro del iframe principal, a su vez no podia hacer que la pagina recargara fuera del segundo iframe.

Asi que solo coloque el siguiente script dentro de la pagina a la que mando a redireccionar desde mi servlet.

<script type="text/javascript" language="javascript">
if (top.location != self.location)
{
top.location = self.location;
}
if(top.location == self.location)
{
alert("Gracias por tu participación...");
}
</script>