html - ejemplo - Cómo forzar el enlace desde iframe para que se abra en la ventana principal
iframe video (13)
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";
Encontré que la mejor solución era usar la etiqueta base . Agregue lo siguiente al encabezado de la página en el iframe:
<base target="_parent">
Esto cargará todos los enlaces en la página en la ventana principal. Si desea que sus enlaces se carguen en una nueva ventana, use:
<base target="_blank">
Esta etiqueta es totalmente compatible en todos los navegadores.
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>
Pruebe el atributo target="_parent"
dentro de la anchor tag
.
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>
Yo encontré
<base target="_parent" />
Esto es útil para abrir todos los enlaces iframe abiertos en iframe.
Y
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
Esto lo podemos usar para toda la página o parte específica de la página.
Gracias a todos por su ayuda.
<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. .
Puedes usar cualquier opción
En el caso de la única página padre:
Si desea abrir todos los enlaces a la página principal o al iframe principal, entonces use el siguiente código en la sección principal de iframe:
<base target="_parent" />
O
Si desea abrir un enlace específico en la página principal o el iframe principal, utilice el siguiente modo:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
O
En caso de iframe anidado:
Si desea abrir todos los enlaces en la ventana del navegador (redirigir en la url del navegador), use el siguiente código en la sección principal de iframe:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
</script>
O
Si desea abrir un enlace específico en la ventana del navegador (redirigir en la URL del navegador), utilice la siguiente forma:
<a href="http://specific.org" target="_top" >specific Link</a>
o
<a href="javascript:top.window.location.href=''your_link''">specific Link</a>
<a href="javascript:top.window.location.href=''http://specific.org''">specific Link</a>
<a href="http://normal.org">Normal Link</a>
<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>