Respostas:
Eu encontrei a melhor solução foi usar a tag base . Adicione o seguinte ao cabeçalho da página no iframe:
<base target="_parent">
Isso carregará todos os links da página na janela pai. Se você deseja que seus links sejam carregados em uma nova janela, use:
<base target="_blank">
Esta tag é totalmente suportada em todos os navegadores.
<base target>
deve vir antes de qualquer <a href>
, pois define o contexto de navegação padrão para os seguintes links; <base href>
deve vir antes de qualquer referência de URL ( <* href>
<* src>
<form action>
<object data>
…), pois define o URL base contra o qual os URLs relativos são resolvidos.
<base
tag não tem fechamento de acordo com a especificação w3.org/TR/html5/document-metadata#the-base-element assim que deve ser<base target="_parent" >
Use o atributo target:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
está ok, mas a questão aqui é sobre um link, não sobre a alteração do comportamento de todos os links no iframe. Para mim, esta é a resposta correta.
Você pode usar qualquer opção
no caso de apenas a página pai:
se você deseja abrir todos os links na página pai ou no iframe pai, use o seguinte código na seção principal do iframe:
<base target="_parent" />
OU
se você deseja abrir um link específico na página pai ou no iframe pai, use a seguinte maneira:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
OU
no caso de iframe aninhado:
Se você deseja abrir todos os links na janela do navegador (redirecionar na URL do navegador), use o seguinte código na seção principal do 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>
OU
se você deseja abrir um link específico na janela do navegador (redirecionar no URL do navegador), use o seguinte modo:
<a href="http://specific.org" target="_top" >specific Link</a>
ou
<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>
Há um elemento HTML chamado base
que permite:
Especifique um URL padrão e um destino padrão para todos os links em uma página:
<base target="_blank" />
Ao especificar, _blank
verifique se todos os links dentro do iframe serão abertos fora.
Como observado, você pode usar um atributo de destino, mas foi tecnicamente reprovado em XHTML. Isso deixa você usando javascript, geralmente algo como parent.window.location
.
Se você estiver usando o iframe em sua página da web, poderá encontrar um problema ao alterar a página inteira por meio de um hiperlink HTML (tag de âncora) do iframe. Existem duas soluções para mitigar esse problema.
Solução 1. Você pode usar o atributo de destino da marca âncora, conforme fornecido no exemplo a seguir.
<a target="_parent" href="http://www.kriblog.com">link</a>
Solução 2. Você também pode abrir uma nova página na janela pai do iframe com JavaScript.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
Lembre-se ⇒ target="_parent"
foi descontinuado no XHTML, mas ainda é suportado no HTML 5.x.
Mais informações podem ser lidas no link a seguir http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
A solução mais versátil e cross-browser é evitar o uso da tag "base" e, em vez disso, usar o atributo de destino das tags "a":
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
A <base>
tag é menos versátil e os navegadores são inconsistentes em seus requisitos para sua colocação no documento, exigindo mais testes entre navegadores. Dependendo do seu projeto e situação, pode ser difícil ou mesmo totalmente inviável obter o posicionamento ideal da <base>
tag entre navegadores .
Fazer isso com o target="_parent"
atributo da <a>
tag não é apenas mais amigável ao navegador, mas também permite distinguir entre os links que você deseja abrir no iframe e os que deseja abrir no pai.
Yah eu encontrei
<base target="_parent" />
Isso é útil para abrir todos os links iframe abertos no iframe.
E
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
Isso podemos usar para página inteira ou parte específica da página.
Obrigado a todos por sua ajuda.
Tentar target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
o mesmo 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>