Jsdom: Unterstützung für HTMLElement.dataset hinzugefügt

Erstellt am 19. Nov. 2014  ·  14Kommentare  ·  Quelle: jsdom/jsdom

Derzeit scheint es, als hätten von document.createElement() zurückgegebene Elemente keine .dataset-Eigenschaft, was unerwartet ist (https://html.spec.whatwg.org/#dom-dataset).

best-fixed-by-webidl2js feature html living standard

Hilfreichster Kommentar

+1 Brauche diese Funktion wirklich

Alle 14 Kommentare

Siehe Diskussion in #963; Dies ist nicht möglich, bis V8 Proxys unterstützt (und nicht das nicht standardmäßige Proxy.create , sondern new Proxy ).

+1 Brauche diese Funktion wirklich

Sehr überrascht, dass es das noch nicht in die Spezifikation geschafft hat.

Warum /lib/jsdom/browser/not-implemented.js löst keinen Fehler aus?

Verwenden Sie für diejenigen, die dies wünschen, _element_.setAttribute("data-foo","bar");

Irgendwelche Updates dazu?

Junge, ich habe gerade eine Stunde damit verbracht, dieses Gespenst eines Problems zu debuggen, dessen einziges Symptom war, dass dem Knoten der Speicher ausgeht. Es stellte sich heraus, dass dies durch die Verwendung von dataset anstelle von getAttribute verursacht wurde. Vielleicht würde eine Helferwarnung in der Zwischenzeit die Leute vor der gleichen Erfahrung bewahren? :-/

@domenic demnach wird Proxy seit Node 6 unterstützt.
Haben Sie einige Richtlinien, wie Sie dies implementieren möchten, damit es einfacher wird, einen Beitrag zu leisten?

@idanen Sie sollten zuerst die Schnittstelle DOMStringMap implementieren, den Typ von <a i="8">HTMLElement</a>.prototype.dataset . Die Implementierung DOMStringMap würde dann Änderungen in webidl2js erfordern, um ältere Plattformobjekte (wie in Web IDL definiert) über Proxys zu unterstützen. Die Web-IDL-Spezifikation enthält detaillierte Anweisungen dazu, was jede interne Methode genau tun sollte. (Grundsätzlich gehen Sachen in der Web-IDL-Spezifikation an webidl2js, Sachen im HTML-Standard gehen an jsdom.)

Wenn Sie daran arbeiten sollten, empfehle ich Ihnen auch, Ihre Arbeit auf meinen Zweig zu stützen, der hoffentlich bald zusammengeführt wird.

@TimothyGu So etwas wie Dom-Token-Liste ?

@idanen , nein das ist etwas ganz anderes.

Wir sind auf dieses Problem gestoßen, als wir unsere Testsuite zu jsdom migriert haben. Wenn es hilfreich ist, hier ist der Codemod, den ich geschrieben habe, um dataset Getter und Setter zu konvertieren, um getAttribute und setAttribute zu verwenden: https://gist.github.com/schreifels/ eb6764b0435d9d830652cee7cb1132c1.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen