HTML - Forçar a abertura de todos os links em uma nova janela

Publicado por Perfil removido em 27/02/2010

[ Hits: 13.869 ]

 


HTML - Forçar a abertura de todos os links em uma nova janela



O processo é muito simples. Criamos um Java Script que lista todos os links da página e dentro de um "for" modificamos o target deles. No exemplo mudei pra "_blank", mas você pode escolher o que for mais conveniente. Independente de como o link tenha sido criado e qual target tenha sido definido pra ele no código html, será mudado para o que for definido no script. Pra executar o script é só chamá-lo no evento onload do body.

<html>
  <head>
    <title>Abrir todos os links como blank</title>
    <script language="JavaScript">
      function AbrirTodosOsLinksComoBlank()
      {
        for (i = 0; i < document.links.length; i++)
        {
          document.links[i].target = "_blank";
        }
      }
    </script>
  </head>
  <body onload="JavaScript:AbrirTodosOsLinksComoBlank();">
    <a href="http://pedro-araujo.com/" target="_parent">Link 1</a><br>
    <a href="http://www.vivaolinux.com.br/">Link 2</a><br>
    <a href="http://www.ubuntu-br.org/" target="_blank">Link 3</a><br>
    <a href="#">Link 4</a><br>
    <a href="http://www.google.com.br/" target="_self">Link 5</a>
  </body>
</html>

Um exemplo prático é o que eu usei na reformulação do meu site. As páginas principais e institucionais estão no servidor da RJ Host que hospeda meu domínio principal, já as postagens do blog eu mantive no serviço Blogger do Google pra evitar uma migração numerosa de mais de um ano e meio de postagens, e vou continuar mantendo-as lá pra continuar a usar o sistema de publicação do Blogger, economizando espaço em disco e banda no servidor do meu domínio principal.

Mas pra que tudo fique no mesmo lugar eu embuti a página do blog no layout principal do site, só que como a maioria dos links das postagens não tinham target e automaticamente abriam na mesma janela como se fosse "_self" (que é o padrão) e isso acarretaria remontagem de frames, eu fiz uma verificação de pra onde os links estavam apontando, se fosse para o meu domínio principal abria no "_parent", se fosse pra dentro do blog fica na mesma janela e se for pra um endereço externo abre em nova janela.

Eu criei o script abaixo, coloquei ele no meu servidor, lá na edição do layout do blog referenciei ele (o Blogger tem restrições quanto a criar certos tipos de script dentro do layout dele) e ativei-o no onload do layout do blog. Ficou assim:

function AbrirTodosOsLinksComoBlank()
{
  var i;
  var s;
  for (i = 0; i < document.links.length; i++)
  {
    s = document.links[i].href;
    if ((s != "http://pedro-araujo.com/site") && (s.substr(0, 43)) != "http://pedroaraujoprogramador.blogspot.com/")
    {
      document.links[i].target = "_blank";
    }
  }
}

Outras dicas deste autor

libre.fm: Banco de músicas online livre

Flatpak no openSUSE Leap 15 e Tumbleweed

Página inicial do Google com seu nome

Placa wireless Ralink no sidux

Instalando o Java e NetBeans IDE no Linux

Leitura recomendada

Upload de múltiplos arquivos com Javascript + Flash

Netflix no Firefox (Debian) - Error: Request mediaKeySystem access rejected: EME has been preffed off [Resolvido]

Como ajustar o tamanho do iframe pelo tamanho da tela e mudar o target de uma página depois dela aberta

Resolvendo erro de atualização do firmware do modem DSL2640t

Evitando que sua página fique entre frames

  

Comentários
[1] Comentário enviado por paulopatto em 28/02/2010 - 02:19h

Isso também pode ser feito com jQuery da seguinte maneira:

[code]

$("a").attr('target', '_blank');

[/code]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts