typescript - Hvorfor Chrome sender PointerEvents og Firefox MouseEvents, og hvilken typedefinisjon bør jeg bruke i koden min


Jeg er litt ny på TypeScript og prøver å legge til typedefinisjoner for alle metodene mine, samtidig som jeg er så presis som mulig.

Når jeg klikker i Chrome, blir det sendt ut en PointerEvent. I Firefox blir det sendt ut en MouseEvent. Jeg vet at PointerEvent utvider MouseEvent, og ifølge https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent#browser_compatibility støtter også Firefox disse.

  1. Hvorfor utsender Chrome en annen hendelse enn Firefox
  2. Hvilken type bør jeg bruke i mine hendelseslyttere (sannsynligvis MouseEvent)
  3. og viktigst av alt, hvordan kan jeg avgjøre det hvis begge viser noe forskjellig? (altså, er det trygt å stole på Chrome eller må jeg konsultere dokumentasjonen?)

Svar #1

Dette ser ut til å være en feil i Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1675847

Og i Safari også: https://bugs.webkit.org/show_bug.cgi?id=218665

Ifølge spesifikasjonene: https://www.w3.org/TR/uievents/#event-type-click skal det være en PointerEvent

Så inntil disse feilene er fikset, bruk bare MouseEvent, siden PointerEvent arver fra MouseEvent (https://www.w3.org/TR/pointerevents3/#pointerevent-interface)

Relaterte artikler