Jsdom: تنفيذ النطاقات والاجتياز

تم إنشاؤها على ٢١ سبتمبر ٢٠١١  ·  18تعليقات  ·  مصدر: jsdom/jsdom

http://www.w3.org/TR/DOM-Level-2-Traversal-Range/

  • https://dom.spec.whatwg.org/#ranges
  • https://dom.spec.whatwg.org/#traversal

سنحتاج إلى إيجاد / كتابة مجموعة اختبار.

feature needs tests

التعليق الأكثر فائدة

ال 18 كومينتر

لاف ، هذه المواصفات جعلت عيني تنزف

نعم ، سأكون خائفًا جدًا من تنفيذه بدون مجموعة اختبار w3c

ما اكتشفته حتى الآن:

  • يبدو أن هناك نوعًا من مجموعة اختبار W3C لها ، لكن لم يتم نشرها أبدًا على ما يبدو. على الأقل وضع مطور Xerces يديه عليه . لقد اتصلت بمايكل من Xerces ، ربما يمكنه المساعدة.
  • Xerces لديها اختبارات تسمى المدى ، والاجتياز ، و treewalker ؛ قد يساعد البعض منهم
  • أيضًا ، يحتوي Acid3 على مجموعة من الاختبارات المعقدة لهذه الوحدة

لاحظ أن هؤلاء يختبرون "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

ابحث عن الارتباط هنا

مرحبا ، أي تقدم من هذا؟

متى سيتم اصدارها؟ لذلك يمكن ترقية مازح إلى الإصدار الأحدث.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

mitar picture mitar  ·  4تعليقات

Progyan1997 picture Progyan1997  ·  3تعليقات

philipwalton picture philipwalton  ·  4تعليقات

khalyomede picture khalyomede  ·  3تعليقات

vsemozhetbyt picture vsemozhetbyt  ·  4تعليقات