Target Blank

O exemplo deste post está aqui e o script pode ser baixado aqui.

Há diversas discussões sobre se um link em um site deve ou não abrir em outra página e as razões de quando isso deve ocorrer. Mesmo que um link em um site não possua o target="_blank" os browsers possuem teclas que te permite controlar se um link deve abrir na mesma página ou se deve abrir em outra.

Para os casos em que você precisar que um link abra em outra janela, em um site com doctype de XHTML 1.0 Strict, independente do visitante querer ou não, aqui tem uma solução.

O doctype XHTML 1.0 Strict não aceita o atributo target nos hiperlinks. Isso só é permitido se você utilizar um doctype transitional ou frameset, caso contrário, você não deve utilizar o atributo se quiser que seu código esteja dentro dos padrões da W3C. Entretanto, com um script simples você pode obter o mesmo comportamento que o atributo target="_blank" teria, mas sem utiliza-lo se você precisar faze-lo.

No seu documento XHTML você deve proceder da seguinte maneira. A função de javascript faz com que todos os hyperlinks com um atributo definido com o rel="externo" abram em uma nova janela. O atributo "rel" especifica uma relação entre o documento onde o link se encontra e o alvo de origem. Para esta função eu defini a palavra "externo" como o valor necessário do atributo "rel" para que o script faça com que este link abra em outra janela. Ou seja, todos os links que você quiser que abram em outra janela, devem possuir o atributo rel="externo" nele escrito como no exemplo:

<a href="www.seusite.com" title="seusite" rel="externo">seusite</a>

O Script ainda insere um texto no title do link dizendo que ele vai abrir em uma nova janela, ou outra mensagem que você desejar inserir para todos os links que abrem externamente no seu site.

26 thoughts on “Target Blank”

  1. Muito bom este código! Agora que vou começar a me aventurar no "Strict" tenho certeza que este código me será muito útil! Parabéns por mais este artigo!

  2. Fala Henrique blz ?

    deixa eu te perguntar … pelo que vi no script vc localiza os links e se estiverem com o atributo rel="externo" ele adiciona o target via javascript.

    Funciona perfeito mas, como o target não é aceito ele não deveria ser utilizado nem mesmo pelo script certo ou eu to viajando ?

    vlw ótimo site … to preparando um layout pra mandar pra ti … flws

  3. Edu, sua primeira opção não funciona no XHTML 1 Strict. Sua segunda opção funciona, muito bem para poucos links. Para um site grande, é mais limpo administrar, criando um javascript pequeno e administrando cada link com um rel="externo".

  4. Concerteza vo usar isso
    É um "chute muito forte no saco" ter que ficar segurando a tecla Shift pra abrir em uma outra janela.

  5. Henrique, sou ignorante em relação ao XHTML e gostaria de saber porquê o XHTML 1.0 Strict não aceita "target" em hiperlinks (porque foi "deprecated")? (se é que há uma resposta)

  6. Pingback: Leandro Vieira Pinho - Desenvolvimento web em geral. » Blog Archive » Atributo target ou javascript obstrusivo para abrir novas janelas?
  7. Validei este código no Adobe Dreamweaver:

    Início

    Recebi um aviso de que o atributo "rel", da tag <a>, não é suportado em navegadores Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.5, Microsoft Internet Explorer 6.0 e Netscape Navigator 6.0. Isso seria verdade?

  8. Pingback: terreiro.net » Arquivo » Vocês não precisam ficar aqui
  9. Pingback: dudut » Blog Archive » Target Blank - Usar ou não Usar?
  10. Gostei do script pra mostrar como mudar uma monte de tag ao mesmo tempo, mas pra mostrar como manter xhtml strict é uma baita trapassa.

    Dúvida: o do Edy(#12) ainda mantém strict?

    Comparando com o Google e as trapassas que fazem para conseguir altas posições no ranking e que o google bane quem trapaceia, então podemos dizer que seu código seria banido pelo w3c.

    Mas que o código é bacana, isso é.

  11. Uma solução é deixar o usuário decidir.
    Basta deixar um checkbox marcado com a opção "Abrir links de sites externos em uma nova janela". Se o cara desmarcar é porque não quer continuar no site ou porque gosta de ficar usando o botão Voltar.

  12. ah esse código é muito grande e é tem muita gambiarra,mas até que é maneio.
    Eu acho que da ,acho não tem certeza que da para fazer um código pequeno e manero sem gambiarra!.

  13. Olá,

    Constatei (assim como o Paulo disse) o IE não suporta o atributo rel. Alguém sabe como solucionar esse problema?

Leave a Reply

Your email address will not be published. Required fields are marked *