html - ejemplo - iframe width




Cómo forzar el enlace desde iframe para que se abra en la ventana principal (9)

Necesito abrir el enlace en la misma página principal, en lugar de abrirlo en una página nueva.

nota: el iframe y la página principal son el mismo dominio .


Como se indicó, podría usar un atributo de destino, pero estaba técnicamente en desuso en XHTML. Eso te deja con el uso de javascript, generalmente algo como parent.window.location .


Con JavaScript:

window.parent.location.href= "http://www.google.com";

Hay un elemento HTML llamado base que te permite:

Especifique una URL predeterminada y un destino predeterminado para todos los enlaces en una página:

<base target="_blank" />

Al especificar _blank se asegura de que todos los enlaces dentro del iframe se abrirán afuera.


Prueba target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>

Si está utilizando iframe en su página web, puede encontrar un problema al cambiar toda la página a través de un hipervínculo HTML (etiqueta de anclaje) desde el iframe. Hay dos soluciones para mitigar este problema.

Solución 1. Puede usar el atributo de destino de la etiqueta de anclaje como se indica en el siguiente ejemplo.

<a target="_parent" href="http://www.kriblog.com">link</a>

Solución 2. También puede abrir una nueva página en la ventana principal desde iframe con JavaScript.

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

Recuerde que ⇒ target="_parent" ha quedado en desuso en XHTML, pero aún es compatible con HTML 5.x.

Se puede leer más en el siguiente enlace http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html


Utilizar atributo de destino:

<a target="_parent" href="http://url.org">link</a>

<a target="parent"> abrirá los enlaces en una nueva pestaña / ventana ... <a target="_parent"> abrirá los enlaces en la ventana principal / actual, sin abrir nuevas pestañas / ventanas. Don't_forget_that_underscore!


La solución más versátil y más multiplataforma es evitar el uso de la etiqueta "base" y, en su lugar, utilizar el atributo de destino de las etiquetas "a":

<a target="_parent" href="http://www..com"></a>

La etiqueta <base> es menos versátil y los navegadores son inconsistentes en sus requisitos para su ubicación dentro del documento, lo que requiere más pruebas entre los navegadores. Dependiendo de su proyecto y su situación, puede ser difícil o incluso totalmente imposible lograr la ubicación ideal en el navegador de la etiqueta <base> .

Hacer esto con el atributo target="_parent" de la etiqueta <a> no solo es más fácil de usar para el navegador, sino que también le permite distinguir entre los enlaces que desea abrir en el iframe y los que desea abrir en el padre. .


   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>




html-target