Respuestas:
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 con todos los navegadores.
<base target>
debería aparecer antes que ninguno <a href>
, ya que establece el contexto de navegación predeterminado para los siguientes enlaces; <base href>
debe aparecer antes de cualquier referencia de URL ( <* href>
<* src>
<form action>
<object data>
...) ya que establece la URL base contra la cual se resuelven las URL relativas.
<base
etiqueta no tiene cierre de acuerdo con la especificación w3.org/TR/html5/document-metadata#the-base-element, por lo que debería ser<base target="_parent" >
Utilice el atributo de destino:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
está bien, pero la pregunta aquí es sobre un enlace, no sobre el cambio de comportamiento de todos los enlaces en el iframe. Para mí esta es la respuesta correcta.
Puedes usar cualquier opción
en caso de solo página principal:
si desea abrir todos los enlaces en la página principal o en el iframe principal, utilice el siguiente código en la sección principal del iframe:
<base target="_parent" />
O
si desea abrir un enlace específico en la página principal o el iframe principal, utilice la siguiente manera:
<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), utilice el siguiente código en la sección principal del 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 manera:
<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>
Hay un elemento HTML llamado base
que le permite:
Especifique una URL predeterminada y un destino predeterminado para todos los enlaces en una página:
<base target="_blank" />
Al especificar _blank
, asegúrese de que todos los enlaces dentro del iframe se abrirán afuera.
Como se señaló, podría usar un atributo de destino, pero técnicamente estaba en desuso en XHTML. Eso te deja con el uso de JavaScript, generalmente algo así parent.window.location
.
Si usa 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) del iframe. Hay dos soluciones para mitigar este problema.
Solución 1. Puede utilizar el atributo de destino de la etiqueta de anclaje como se muestra 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 el iframe con JavaScript.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
Recuerde ⇒ 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
La solución más versátil y más cruzada del navegador es evitar el uso de la etiqueta "base" y, en su lugar, usar el atributo de destino de las etiquetas "a":
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
La <base>
etiqueta 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 navegadores. Dependiendo de su proyecto y situación, puede ser difícil o incluso totalmente inviable lograr la ubicación ideal del navegador cruzado del<base>
etiqueta en .
Hacer esto con el target="_parent"
atributo de la <a>
etiqueta no solo es más amigable con el navegador, sino que también le permite distinguir entre los enlaces que desea abrir en el iframe y aquellos que desea abrir en el padre.
Yah encontré
<base target="_parent" />
Esto es útil para abrir todos los enlaces de 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.
Tratar target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
mismo que "_parent"
?
<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>