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).
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
).
On dirait que ça vient ! https://twitter.com/s3ththompson/status/687301453761806336
+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.
Commentaire le plus utile
+1 Vraiment besoin de cette fonctionnalité