Bem Vindo ao Gold Pixel aqui achará de tudo de bom para sua diversão.

Espero que achem oque precisam, caso não achem é só pedi em um novo tópico, para acessar qualquer conteúdo importante é preciso se Registrar primeiro e depois fazer login.



Participe do fórum, é rápido e fácil

Bem Vindo ao Gold Pixel aqui achará de tudo de bom para sua diversão.

Espero que achem oque precisam, caso não achem é só pedi em um novo tópico, para acessar qualquer conteúdo importante é preciso se Registrar primeiro e depois fazer login.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

Atributo target da TAG de link e o XHTML

Ir para baixo  Mensagem [Página 1 de 1]

1Atributo target da TAG de link e o XHTML Empty Atributo target da TAG de link e o XHTML Seg Nov 05, 2012 4:00 pm

T-Lord

T-Lord
Fundador
Fundador

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





  1. [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


  1. window.open(this.href);
faria o browser navegar para a url especificada, porém o


  1. 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:







  1. function SetTarget()

  2. {

  3. document.links[0].target = "_blank";

  4. }







  5. [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:

















  1. PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"

  2. "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod">

  3. %xhtml-datatypes.mod;]]>









  4. PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"

  5. "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod">

  6. %xhtml-qname.mod;]]>






  7. PUBLIC "-//W3C//DTD XHTML 1.1//EN"

  8. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

  9. %xhtml11.dtd;









  10. PUBLIC "-//W3C//ELEMENTS XHTML Target Module//EN"

  11. "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-target-1.mod">

  12. %xhtml-target.mod;]]>



Salve o DTD acima como:


  1. xhtml11-target.dtd
em algum diretório de seu website e crie seu documento XHTML da seguinte maneira:









  1. ...





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]


https://goldpixel.forumeiro.com

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos