No HTML 4.0 Strict e no XHTML 1.0 STRICT, o atributo target não é permitido na tag <a>, o que é frustrante para web designers. Ainda é permitido ser usado em especificações de transição. Mas através de certos métodos, podemos resolver este problema.
O atributo target foi removido da especificação HTMl4.0: mas adicionou outro atributo: rel. Este atributo é usado para especificar o relacionamento entre o documento que contém o link e o documento vinculado. Seus valores de atributos (como: próximo, anterior, capítulo, seção) são definidos na especificação. A maioria desses atributos é usada para definir relacionamentos entre pequenas partes de um documento grande. Na verdade, a especificação permite que os desenvolvedores usem livremente valores de propriedade não padronizados para aplicações específicas.
Aqui, usamos um valor personalizado externo para o atributo rel para marcar um link para abrir uma nova janela.
Código do link que não está em conformidade com os padrões da web mais recentes:
<a href="document.html" target="_blank">link externo</a>
Use o atributo rel:
<a href="document.html" rel="external">link externo</a>
Agora que construímos um link para uma nova janela que está em conformidade com os padrões da Web, também precisamos usar JavaScript para implementar uma nova janela. O que o script quer fazer é encontrar todos os hiperlinks no documento que definimos como rel="external" quando a página web for carregada.
Primeiro precisamos determinar o navegador
if (!document.getElementsByTagName) retornar;
getElementsByTagName é um método fácil de usar no padrão DOM1 e é suportado pela maioria dos navegadores atualmente. Como alguns navegadores antigos, como Netscape 4 e IE4, não suportam DOM1, devemos descartá-lo determinando se esse método existe. essas versões mais antigas de navegadores.
A seguir, obtemos todas as tags <a> do documento através do método getElementsByTagName:
var âncoras = document.getElementsByTagName("a");
As âncoras são atribuídas como um array contendo cada tag <a> Agora devemos percorrer cada tag <a> e modificá-la:
for (var i=0; i < âncoras.comprimento; i++) {
var âncora = âncoras;
Encontre a tag <a> onde deseja abrir uma nova janela
if (anchor.getAttribute("href") &&
âncora.getAttribute("rel") == "externo")
Em seguida, crie o valor do atributo target e atribua o valor "_target"
âncora.target = "_blank",
Código completo:
função links externos() {
if (!document.getElementsByTagName) retornar;
var âncoras = document.getElementsByTagName("a");
for (var i=0; i<âncoras.comprimento; i++) {
var âncora = âncoras;
if (anchor.getAttribute("href") &&
âncora.getAttribute("rel") == "externo")
âncora.target = "_blank";
}
}
janela.onload = links externos;