2010
03.13

Muitas vezes quando vamos manipular (X)HTML via Javascript é necessário prover metadados de alguma forma. O caso mais comum é utilizar atributos não padrões nas tags (X)HTML:

<a href="#" class="popup" title="Veja o popup!"
  titulo_do_popup="Titulo para o popup">Clique-me</a>
   

Um dos mitos do HTML é que ao utilizarmos atributos fora da especificação estamos tornando nosso código não padrão. Mito esse que inclusive precisou ser rebatido pelo pessoal do Dojo Toolkit que usa esse recurso extensivamente.

Custom attributes have always been valid HTML [...] The HTML specification states that any attribute not recognized is to be ignored by the HTML rendering engine in user agents, and Dojo optionally takes advantage of this to improve ease of development.

Como essa é uma necessidade recorrente, o HTML 5 propõe a utilização de atributos prefixados com ‘data-’ conforme a sessão Custom data attribute da especificação

Já o XHTML (por ser XML) é bem chato no que diz respeito a isso: se um atributo não está nas especificações então seu código é considerado não padrão pois o mesmo é validado contra um DTD. Uma alternativa para quem não pode fugir do XHTML é definir o metadado através de JSON por convenção indexado por id:

<script type="text/javascript">
var titulos_de_popups = {link1: "Titulo 1", link2: "Titulo 2"};
</script>
<a href="#" title="Veja o popup!" id="link1">Clique-me</a>

Utilizar atributos não padrões para metadados é algo que vai da necessidade e possibilidade de cada um, contudo, muito cuidado: já cheguei a ver atributos não padrões armazenando instruções SQL inteiras, algo totalmente abominável (mesmo que os atributos fossem padrões :) ).
Quando estiver precisando passar metadados demais dessa forma sinta o mal cheiro: algo está muito errado na sua aplicação.

—– Atualização —–

Pra quem usa jQuery, esse plugin facilita bastante a recuperação dos metadados.

Nenhum comentário.

Adicione Seu Comentário