現在、document.createElement()から返される要素には、予期しない.datasetプロパティがないようです(https://html.spec.whatwg.org/#dom-dataset)。
#963の説明を参照してください。 これは、V8がプロキシをサポートするまでは不可能です(非標準のProxy.create
ではなく、 new Proxy
)。
+1本当にこの機能が必要
これがまだ仕様に含まれていないことに非常に驚いています。
/lib/jsdom/browser/not-implemented.jsがエラーをスローしないのはなぜですか?
これが必要な場合は、_element_.setAttribute( "data-foo"、 "bar");を使用してください。
これに関する更新はありますか?
少年、私はちょうど1時間かけて、ノードがメモリ不足であるという唯一の症状である問題のこのゴーストをデバッグしました。 getAttribute
dataset
を使用したことが原因であることが判明しました。 おそらく、その間にヘルパーが警告することで、同じ経験から人々を救うことができるでしょうか? :-/
@domenicによると、ノード6以降はProxy
がサポートされています。
貢献しやすくするために、これをどのように実装するかについてのガイドラインはありますか?
@idanen最初にDOMStringMap
インターフェース、タイプ<a i="8">HTMLElement</a>.prototype.dataset
を実装する必要があります。 DOMStringMap
を実装するには、プロキシを介してレガシープラットフォームオブジェクト( Web IDLで定義されている)をサポートするためにwebidl2js
を変更する必要があります。 Web IDL仕様には、各内部メソッドが正確に実行する必要があることに関する詳細な手順が含まれています。 (基本的に、Web IDL仕様のものはwebidl2jsに行き、HTML標準のものはjsdomに行きます。)
これに取り組む場合は、私のブランチに基づいて作業することもお勧めします。これは、間もなく統合されることを願っています。
@TimothyGu dom-token-listのようなもの?
@idanen 、いや、それはまったく違うものです。
テストスイートをjsdomに移行するときに、この問題が発生しました。 役立つ場合は、 dataset
ゲッターとセッターをgetAttribute
とsetAttribute
を使用するように変換するために作成したcodemodを次に示します: https ://gist.github.com/schreifels/
最も参考になるコメント
+1本当にこの機能が必要