Leaflet: L.Browser.touch salah disetel saat berada di desktop (Chrome)

Dibuat pada 18 Jan 2017  ·  3Komentar  ·  Sumber: Leaflet/Leaflet

Tampaknya pembaruan terbaru untuk Chrome (di Mac, setidaknya) telah mengubah implementasi window.PointerEvent . Hal ini menyebabkan versi Leaflet (1.0.2) saat ini salah mendiagnosis browser sebagai perangkat sentuh dan menambahkan kelas leaflet-touch .

Baris ini tampaknya menjadi pelakunya:

pointer = window.PointerEvent || msPointer

... dapat ditemukan di sini: https://github.com/Leaflet/Leaflet/blob/v1.0.2/src/core/Browser.js#L33

Masalahnya adalah window.PointerEvent adalah sebuah fungsi, yang akan selalu mengembalikan 'truthy'.

Cara memperbanyak

  • Browser: Mac OSX El Capitan (10.11.6), Chrome Versi 55.0.2883.95 (64-bit)
  • Kunjungi www.leafletjs.com dan lihat contoh demo...tombol Zoom In/Out diperbesar, karena kelas leaflet-touch diterapkan ke wadah peta selebaran.

Komentar yang paling membantu

Jadi, apa gunanya mendeteksi sentuhan jika tidak mendeteksi sentuhan secara akurat? Bukankah seluruh logika itu harus dihapus dari selebaran?

Semua 3 komentar

Saya dapat mereproduksi ini juga ...

Duplikat https://github.com/Leaflet/Leaflet/issues/3944. Tidak ada cara untuk mengetahui apakah browser berjalan di komputer dengan layar sentuh atau tidak, hanya mungkin untuk mengetahui apakah browser mendukung acara sentuh/penunjuk atau tidak. Lihat juga http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

Jadi, apa gunanya mendeteksi sentuhan jika tidak mendeteksi sentuhan secara akurat? Bukankah seluruh logika itu harus dihapus dari selebaran?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat