The XUL Factory

Aller au contenu | Aller au menu | Aller à la recherche

lundi 22 février 2010

Les attibuts data-* de HTML5

On lit (et écrit également, c'est fatal) beaucoup de choses sur HTML5 depuis quelques années. Au programme des réjouissances on trouve pêle-mêle le tag canvas pour faire du graphisme programmatique, le stockage local pour, par exemple pour le mode offline des applications web, les désormais célèbres tags audio et video déjà utilisés par dailymotion et youtube, le drag and drop... J'en passe et des meilleurs.

Par contre une nouveauté à propose de laquelle je n'avais jamais rien lu et que j'ai découvert hier ce sont les embedded custom non-visible data attributes, c'est là dire des méta informations sous forme d'attributs que l'on peut ajouter à loisir sur n'importe quel élément d'une page HTML et qui peuvent être lus et interprétés par un script dans la page. C'est un peu équivalent à ce qu'il est possible de faire avec XHTML en ajoutant des attributs définis par ses propres namespaces.

Un exemple :

<ul id="pointsOfInterest">
  <li data-latitute="48°51" data-longitude="2°17">La tour Eiffel</li>
  <li data-latitute="48°38" data-longitude="1°30">La mont Saint-Michel</li>
</ul>

Ensuite avec un script on peut utiliser ces coordonnées. Par exemple on peut monter où se trouve le lieu sur une carte.

/* par exemple avec jQuery */
$("#pointsOfInterest > li").click(function() {
    var lat = $(this).dataset("latitude");
    var long = $(this).dataset("logitude");
    showOnMap(lat, long);
}

Un autre exemple : utilisation d'un attribut data-at pour afficher des sous-titres en fonction d'un time-code dans une présentation audio (lue avec le tag audio il va sans dire) : http://www.toolness.com/wp/?p=772.

Je trouve cette nouvelle façon de passer des données supplémentaires très intéressante ; elle est surtout plus simple à mettre en œuvre que les namespaces en XHTML. Toutefois, et c'est sans doute la raison pour laquelle on en parle peu, les navigateur ne l'implémente pas encore. Pour ceux qui sont tout de même pressés de jouer avec, il existe un plugin jQuery qui permet de simuler l'objet dataset : HTML5 Dataset jQuery Plugin.

vendredi 12 janvier 2007

Javascript, objets et prototypes

Voici un petit billet qui présente rapidement le modèle objet de Javascript.

Objets

La majorité des langages objets utilisent la notion de classes. Pour reprendre une image fréquemment utilisée, la classe est le moule dans lequel on cuit instancie l'objet. Donc les classes et les objets vivent dans des mondes séparés.

En javascript c'est différent, il n'existe pas de classes, tout est objet. Voilà une façon de créer un objet en javascript[1] :

Notes

[1] Habituellement j'utilise l'interpréteur javascript Rhino de mozilla. Rhino est multi-plateforme et écrit en Java.

Lire la suite...