O XHTML aparentemente proíbe a utilização de alguns atributos comumente
utilizados no HTML convencional. Por exemplo, caso se valide um
documento XHTML via o DTD do XHTML-Strict que contenha um link com o
atributo target="_Blank", este não será aprovado. O XHTML-Transitional é
mais relaxado e não acusará o erro.
Mas suponha que você queira utilizar o XHTML-Strict, abrir uma nova
página pelo link e ainda assim passar na validação, como proceder?
Opção 1 - Javascript
O que acontece aqui é que quando o usuário clicka no link, o js
evita que o browser navegue e o força a abrir o link em uma nova
página. Caso o usuário tenha desabilitado o browser para Javascript ou
este não suporte o js, este método vem a falhar.
Opção 2 - Javascript DOM
Poderíamos pensar de outra maneira, ié. mudar o DOM - Document
Object Model. Normalmente o browser interpreta que ao clickarmos em um
link normal [sem o target="_blank"] a navegação continua na mesma
instância do browser. Poderíamos mudar este comportamento via Javascript
da seguinte maneira:
Deste modo abriríamos o link em uma nova página sem utilizar o
atributo target="_blank", mas novamente caso o usuário tenha
desabilitado o browser para Javascript ou este não suporte o js, este
método vem a falhar.
Opção 3 - Modularidade do XHTML
Até então o XHTML tinha todas as definições estabelecidas em um
único e enorme DTD. O XHTML 1.1 pega o XHTML 1.0 Strict e o divide em
diversos módulos abstratos e deste modo os módulos são utilizados de
acordo com a necessidade. Naturalmente veremos como utilizar o módulo
Target.
Basicamente utilizamos o mesmo DTD acrescido do módulo Target:
Salve o DTD acima como:
Agora você poderá utilizar o atributo Target e ainda assim href='http://validator.w3.org' target=_blank>validar o seu
documento.
Ken Awamura
Mista Informática Ltda
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
utilizados no HTML convencional. Por exemplo, caso se valide um
documento XHTML via o DTD do XHTML-Strict que contenha um link com o
atributo target="_Blank", este não será aprovado. O XHTML-Transitional é
mais relaxado e não acusará o erro.
Mas suponha que você queira utilizar o XHTML-Strict, abrir uma nova
página pelo link e ainda assim passar na validação, como proceder?
Opção 1 - Javascript
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
O que acontece aqui é que quando o usuário clicka no link, o js
window.open(this.href);
return false;
evita que o browser navegue e o força a abrir o link em uma nova
página. Caso o usuário tenha desabilitado o browser para Javascript ou
este não suporte o js, este método vem a falhar.
Opção 2 - Javascript DOM
Poderíamos pensar de outra maneira, ié. mudar o DOM - Document
Object Model. Normalmente o browser interpreta que ao clickarmos em um
link normal [sem o target="_blank"] a navegação continua na mesma
instância do browser. Poderíamos mudar este comportamento via Javascript
da seguinte maneira:
function SetTarget()
{
document.links[0].target = "_blank";
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Deste modo abriríamos o link em uma nova página sem utilizar o
atributo target="_blank", mas novamente caso o usuário tenha
desabilitado o browser para Javascript ou este não suporte o js, este
método vem a falhar.
Opção 3 - Modularidade do XHTML
Até então o XHTML tinha todas as definições estabelecidas em um
único e enorme DTD. O XHTML 1.1 pega o XHTML 1.0 Strict e o divide em
diversos módulos abstratos e deste modo os módulos são utilizados de
acordo com a necessidade. Naturalmente veremos como utilizar o módulo
Target.
Basicamente utilizamos o mesmo DTD acrescido do módulo Target:
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod">
%xhtml-datatypes.mod;]]>
PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod">
%xhtml-qname.mod;]]>
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
%xhtml11.dtd;
PUBLIC "-//W3C//ELEMENTS XHTML Target Module//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-target-1.mod">
%xhtml-target.mod;]]>
Salve o DTD acima como:
xhtml11-target.dtd
...
Agora você poderá utilizar o atributo Target e ainda assim href='http://validator.w3.org' target=_blank>validar o seu
documento.
Ken Awamura
Mista Informática Ltda
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]