似乎最近对 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
是一个函数,它总是会返回“truthy”。
leaflet-touch
类被应用于传单地图容器。我也可以重现这个...
https://github.com/Leaflet/Leaflet/issues/3944 的副本。 无法知道浏览器是否在带有触摸屏的计算机上运行,只能知道浏览器是否支持触摸/指针事件。 另见http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
那么,如果不能准确地检测到触摸,那么检测触摸有什么意义呢? 那么,不应该从传单中删除整个逻辑吗?
最有用的评论
那么,如果不能准确地检测到触摸,那么检测触摸有什么意义呢? 那么,不应该从传单中删除整个逻辑吗?