يبدو حاليًا أن العناصر التي تم إرجاعها من document.createElement () لا تحتوي على أي خاصية .dataset ، وهو أمر غير متوقع (https://html.spec.whatwg.org/#dom-dataset).
الرجاء مراجعة المناقشة في # 963 ؛ هذا غير ممكن حتى يدعم V8 الوكلاء (وليس غير القياسي Proxy.create
، ولكن new Proxy
).
يبدو أنه قادم! https://twitter.com/s3ththompson/status/687301453761806336
+1 حقًا بحاجة إلى هذه الميزة
مندهش جدًا من أن هذا لم يصل إلى المواصفات ، حتى الآن.
لماذا /lib/jsdom/browser/not-implemented.js لا يخطئ؟
لأولئك الذين يريدون ذلك ، استخدم _element_.setAttribute ("data-foo"، "bar")؛
أي تحديثات على هذا؟
يا فتى ، لقد أمضيت للتو ساعة في تصحيح هذا الشبح من مشكلة كان عارضها الوحيد أن العقدة كانت تنفد من الذاكرة. تبين أن السبب في ذلك هو استخدام dataset
بدلاً من getAttribute
. ربما من شأن التحذير المساعد في هذه الأثناء أن ينقذ الأشخاص من نفس التجربة؟ : - /
domenic وفقًا لهذا ، يتم دعم Proxy
منذ العقدة 6.
هل لديك بعض الإرشادات حول كيفية تنفيذ ذلك حتى يسهل عليك المساهمة؟
idanen ستحتاج أولاً إلى تنفيذ واجهة DOMStringMap
، من النوع <a i="8">HTMLElement</a>.prototype.dataset
. سيتطلب تنفيذ DOMStringMap
بعد ذلك تغييرات في webidl2js
لدعم كائنات النظام الأساسي القديمة (على النحو المحدد في Web IDL ) من خلال الوكلاء. تحتوي مواصفات Web IDL على إرشادات مفصلة حول ما يجب أن تفعله كل طريقة داخلية بالضبط. (بشكل أساسي ، تنتقل العناصر الموجودة في مواصفات Web IDL إلى webidl2js ، بينما تنتقل العناصر الموجودة في معيار HTML إلى jsdom.)
إذا كنت ستعمل على هذا ، فإنني أوصي أيضًا بتأسيس عملك على فرعي الذي نأمل أن يتم دمجه قريبًا.
TimothyGu شيء مثل دوم-توكن-قائمة ؟
idanen ، لا هذا شيء مختلف تمامًا.
واجهنا هذه المشكلة عند ترحيل مجموعة الاختبار الخاصة بنا إلى jsdom. إذا كان ذلك مفيدًا ، فإليك نموذج الكود الذي كتبته لتحويل dataset
Getters والمستوطنين لاستخدام getAttribute
و setAttribute
: https://gist.github.com/schreifels/ eb6764b0435d9d830652cee7cb1132c1.
التعليق الأكثر فائدة
+1 حقًا بحاجة إلى هذه الميزة