Wie kann ich zuverlässig feststellen, ob ein Browser Mouseover-Ereignisse unterstützt?

8

In der Vergangenheit war die beste Methode, um auf das Vorhandensein einer Maus zu prüfen, nach touch event support . Desktop Chrome unterstützt jetzt jedoch Berührungsereignisse, wodurch dieser Test fehlschlägt.

Gibt es eine Möglichkeit, die MouseOver-Event-Unterstützung direkt zu testen, anstatt sie aufgrund von Touch-Ereignissen abzuleiten?

Auflösung: Hier ist der Code, der funktioniert hat, basierend auf der Antwort von AshleysBrain.

%Vor%     
Luke Dennis 24.02.2012, 09:07
quelle

4 Antworten

5

Sie können das Gegenteil der Lösung für tun Erkennung der Tastatur- oder Touch-Eingabe . Warte einfach auf ein aktuelles Berührungsereignis oder Mausbewegungsereignis und entscheide basierend darauf. Wenn Sie das Vorhandensein eines Ereignishandlers überprüfen, kann der Browser angeben, dass das Ereignis vorliegt, auch wenn es derzeit nicht auf Hardware ausgeführt wird, die es unterstützt. Daher ist es das einzig zuverlässige, abzuwarten, welche tatsächlichen Ereignisse ausgelöst werden >     

AshleysBrain 28.02.2012, 08:36
quelle
1

Vielleicht möchten Sie darüber nachdenken, Modernizr zu verwenden. Sie könnten mit dem Modernizer.hasEvent() (docs ):

%Vor%     
jabclab 24.02.2012 09:24
quelle
0

Ich habe es versucht und es funktioniert.

%Vor%

Ich habe die Funktion isEventSupported von Ссылка

genommen     
OammieR 28.02.2012 09:41
quelle
-1

Wenn Websites erkennen können, dass Sie einen mobilen Browser so genau verwenden wie sie, warum können Sie nicht die gleiche Technik verwenden, um zu folgern, dass sie keine Mouse-Over-Unterstützung haben?

    
The Muffin Man 24.02.2012 09:11
quelle