Jsdom: Ajouter la prise en charge de HTMLElement.dataset

Créé le 19 nov. 2014  ·  14Commentaires  ·  Source: jsdom/jsdom

Actuellement, il semble que les éléments renvoyés par document.createElement() n'aient aucune propriété .dataset, ce qui est inattendu (https://html.spec.whatwg.org/#dom-dataset).

best-fixed-by-webidl2js feature html living standard

Commentaire le plus utile

+1 Vraiment besoin de cette fonctionnalité

Tous les 14 commentaires

Veuillez consulter la discussion au #963; ce n'est pas possible tant que la V8 ne prend pas en charge les proxys (et non pas le non standard Proxy.create , mais new Proxy ).

+1 Vraiment besoin de cette fonctionnalité

Très surpris que cela ne figure pas encore dans les spécifications.

Pourquoi /lib/jsdom/browser/not-implemented.js ne génère pas d'erreur ?

Pour ceux qui le souhaitent, utilisez _element_.setAttribute("data-foo","bar");

Des mises à jour à ce sujet ?

Garçon, je viens de passer une heure à déboguer ce fantôme d'un problème dont le seul symptôme était que le nœud manquait de mémoire. S'est avéré être causé par l'utilisation dataset au lieu de getAttribute . Peut-être qu'un avertissement d'assistance dans l'intervalle sauverait les gens de la même expérience ? :-/

@domenic selon this , Proxy est pris en charge depuis le nœud 6.
Avez-vous des directives sur la façon dont vous voulez mettre cela en œuvre afin qu'il soit plus facile de contribuer ?

@idanen Vous voudrez d'abord implémenter l'interface DOMStringMap , le type de <a i="8">HTMLElement</a>.prototype.dataset . L'implémentation DOMStringMap nécessiterait alors des changements dans webidl2js pour prendre en charge les objets de plate-forme hérités (tels que définis dans Web IDL ) via les proxys. La spécification Web IDL contient des instructions détaillées sur ce que chaque méthode interne doit faire exactement. (En gros, les éléments de la spécification Web IDL vont à webidl2js, les éléments de la norme HTML vont à jsdom.)

Si vous deviez travailler là-dessus, je vous recommande également de baser votre travail sur ma branche qui, espérons-le, sera bientôt fusionnée.

@TimothyGu Quelque chose comme dom-token-list ?

@idanen , non, c'est quelque chose de complètement différent.

Nous avons rencontré ce problème lors de la migration de notre suite de tests vers jsdom. Si c'est utile, voici le codemod que j'ai écrit pour convertir dataset getters et setters pour utiliser getAttribute et setAttribute : https://gist.github.com/schreifels/ eb6764b0435d9d830652cee7cb1132c1.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

jhegedus42 picture jhegedus42  ·  4Commentaires

kentmw picture kentmw  ·  3Commentaires

Progyan1997 picture Progyan1997  ·  3Commentaires

mitar picture mitar  ·  4Commentaires

tolmasky picture tolmasky  ·  4Commentaires