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

Publicado por Perfil removido em 27/02/2010

[ Hits: 16.228 ]

 


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

Synaptic - Como é fácil instalar programas no Linux [Vídeo]

Como criar um pacote.tgz com o executável do Lazarus [vídeo]

O tv-time não acha sua placa de TV?

Instalando a famosa Avant Window Navigator no Ubuntu Gutsy

Compartilhamento de arquivos com Samba no Ubuntu 8

Leitura recomendada

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

Extensões (Webmaster) do Firefox

Editor de HTML5 em tempo real

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

Incentivando o uso do Webm, formato aberto de "codec" (conteiner) de vídeo

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts