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

Publicado por Perfil removido em 27/02/2010

[ Hits: 16.217 ]

 


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

Instalando driver da nVidia no Fedora Core 5

Wireless ralink no Slackware 10.2 com kernel 2.6.15.3

Setando o ícone de um JFrame de Java

Wireless ralink no Fedora Core 5

Debian 10 Buster para Iniciantes

Leitura recomendada

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

Slide de imagens em jQuery

Squirrelmail em português

Variáveis variáveis em JavaScript

  

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