Leaflet: تم تعيين L.Browser.touch بشكل غير صحيح عندما تكون على سطح المكتب (Chrome)

تم إنشاؤها على ١٨ يناير ٢٠١٧  ·  3تعليقات  ·  مصدر: Leaflet/Leaflet

يبدو أن التحديثات الأخيرة لمتصفح Chrome (على نظام Mac على الأقل) قد غيرت تنفيذها window.PointerEvent . يؤدي هذا إلى قيام الإصدار الحالي من Leaflet (1.0.2) بتشخيص المتصفح بشكل خاطئ كجهاز يعمل باللمس وإضافة فئة leaflet-touch .

يبدو أن هذا الخط هو الجاني:

pointer = window.PointerEvent || msPointer

... يمكن العثور عليها هنا: https://github.com/Leaflet/Leaflet/blob/v1.0.2/src/core/Browser.js#L33

تكمن المشكلة في أن window.PointerEvent دالة ، والتي ستعيد دائمًا "الحقيقة".

كيف تتكاثر

  • المتصفح: Mac OSX El Capitan (10.11.6) ، إصدار Chrome 55.0.2883.95 (64 بت)
  • انتقل إلى www.leafletjs.com وانظر إلى المثال التوضيحي ... تم تكبير أزرار التكبير / التصغير ، نظرًا لتطبيق فئة leaflet-touch على حاوية خريطة المنشور.

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

إذن ، ما الهدف من اكتشاف اللمس إذا لم يكتشف اللمس بدقة؟ ألا يجب إزالة هذا المنطق كله من النشرة إذن؟

ال 3 كومينتر

يمكنني إعادة إنتاج هذا أيضًا ...

نسخة مكررة من https://github.com/Leaflet/Leaflet/issues/3944. لا توجد طريقة لمعرفة ما إذا كان المتصفح يعمل على جهاز كمبيوتر بشاشة تعمل باللمس أم لا ، فمن الممكن فقط معرفة ما إذا كان المتصفح يدعم أحداث اللمس / المؤشر أم لا. راجع أيضًا http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

إذن ، ما الهدف من اكتشاف اللمس إذا لم يكتشف اللمس بدقة؟ ألا يجب إزالة هذا المنطق كله من النشرة إذن؟

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