http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
سنحتاج إلى إيجاد / كتابة مجموعة اختبار.
لاف ، هذه المواصفات جعلت عيني تنزف
نعم ، سأكون خائفًا جدًا من تنفيذه بدون مجموعة اختبار w3c
ما اكتشفته حتى الآن:
يبدو هذا واعدًا: https://github.com/w3c/web-platform-tests/tree/master/dom
لاحظ أن هؤلاء يختبرون "DOM بدون إصدار" على http://dom.spec.whatwg.org/ وليس المستوى 2 تحديدًا. لكن من المرجح أن تعكس المتصفحات الحقيقية.
لقد انتهيت أساسًا من الوظائف الرئيسية ، لكن لدي بعض المشكلات في الحفاظ على النطاقات حية. أحتاج إلى الاستفادة بشكل أساسي من كل طفرة DOM ولست متأكدًا من أفضل طريقة للقيام بذلك. في بعض الحالات ، استخدمت أحداث الطفرة ، وفي حالات أخرى قمت بلف الطرق المقابلة في النموذج الأولي.
أتساءل الآن عن كيفية إزالة العقدة . مع تعيين suppress observers flag
، لن يتم إصدار الحدث ، ولكن لا تزال النطاقات بحاجة إلى التحديث. هل لدى أي شخص أي أفكار؟ أعتقد أنه ربما ينبغي أن يكون لدينا نظام حدث داخلي بسيط للغاية في جميع أنحاء DOM لمثل هذه الأشياء ؛ يمكن استخدامه مقابل _attrModified
أيضًا ، على سبيل المثال.
adrianlang هذا رائع!
يبدو أن هذا مرتبط برغبتنا الطويلة الأمد في الابتعاد عن استخدام أحداث الطفرات داخليًا ، وبدلاً من ذلك ، يكون لدينا بروتوكول خاص لا يمكن تعطيله أبدًا. انظر # 295. أعلم أن السؤال كثيرًا ، لكن إصلاح ذلك قد يكون هو السبيل لتحقيق ذلك؟
تتسبب تعليقات 1+ غير المرغوب فيها في نقل الميزات إلى الجزء الخلفي من الأعمال المتراكمة. الرجاء استخدام أزرار التصويت بدلا من ذلك. حذف إجراءات 1+ الأخيرة.
ما زلت هناك ، راجع للشغل ، كما هو رمز نصف النهائي الخاص بي. آمل أن أنجز هذا في نهاية المطاف.
adrianheine هل يساعدك تنفيذ TreeWalker الذي هبط على الاقتراب أكثر من الانتهاء من التنفيذ؟
أستخدم أحيانًا Range#createContextualFragment
، فأنا لا أعرف حقًا سبب وجود هذه الطريقة المفيدة على الرغم من (تستحق أن تكون مباشرة على المستند ، أو DocumentFragment)
لذلك انتهى بي الأمر بفعل هذا للاختبارات
global.document.createRange = () => ({
createContextualFragment: str => JSDOM.fragment(str)
});
ولكن كل Range API سيكون أكثر من ذلك بكثير
@ دومينيك أعتقد أن ما كان يسأله acusti هو ما هي الخطوات التالية للتحقق من ذلك؟
أحاول استخدام هذا:
https://github.com/PrismJS/prism/issues/896
هل يمكن لشخص أن يوصي بمسار بديل؟ تعجبني فكرة وجود اختلاف واضح وإبراز بناء الجملة باستخدام Prism. قد يكون أفضل حتى من أداة تمييز جيثب.
سأكون على استعداد لـ https://www.patreon.com/ لسبب آخر لعدم استخدام SourceTree مرة أخرى.
adrianheine قد أكون مهتمًا بالمساعدة إذا كنت تشارك العمل
حصلت على أخطاء في اختبارات الدعابة.
TypeError: document.createRange is not a function
at createRange (node_modules/popper.js/src/utils/findCommonOffsetParent.js:27:26)
at findCommonOffsetParent (node_modules/popper.js/src/utils/getReferenceOffsets.js:16:85)
at Popper.getReferenceOffsets (node_modules/popper.js/src/methods/update.js:29:28)
at Popper.call (node_modules/popper.js/src/index.js:94:19)
at node_modules/popper.js/dist/umd/popper.js:51:7
ابحث عن الارتباط هنا
مرحبا ، أي تقدم من هذا؟
متى سيتم اصدارها؟ لذلك يمكن ترقية مازح إلى الإصدار الأحدث.
التعليق الأكثر فائدة
https://mobile.twitter.com/slicknet/status/782274190451671040