Ich entwickle eine Webanwendung (keine Website mit Seiten mit interessantem Text) mit einer ganz anderen Oberfläche für Berührungen (Ihr Finger verbirgt den Bildschirm, wenn Sie klicken) und Maus (hängt stark von der Schwebevorschau ab). Wie kann ich feststellen, dass mein Benutzer keine Maus hat, um ihm die richtige Benutzeroberfläche zu präsentieren? Ich habe vor, einen Schalter für Leute mit Maus und Berührung zu hinterlassen (wie einige Notebooks).
Die Berührungsereignisfunktion im Browser bedeutet nicht, dass der Benutzer ein Berührungsgerät verwendet (z. B. schneidet Modernizr es nicht ab). Der Code, der die Frage richtig beantwortet, sollte false zurückgeben, wenn das Gerät eine Maus hat, andernfalls true. Bei Geräten mit Maus und Berührung sollte false zurückgegeben werden (nicht nur Berühren).
Nebenbei bemerkt, meine Touch-Oberfläche eignet sich möglicherweise auch nur für Tastaturgeräte. Es ist also eher der Mangel an Maus, den ich erkennen möchte.
Um die Notwendigkeit klarer zu machen, ist hier die API, die ich implementieren möchte:
// Level 1
// The current answers provide a way to do that.
hasTouch();
// Returns true if a mouse is expected.
// Note: as explained by the OP, this is not !hasTouch()
// I don't think we have this in the answers already, that why I offer a bounty
hasMouse();
// Level 2 (I don't think it's possible, but maybe I'm wrong, so why not asking)
// callback is called when the result of "hasTouch()" changes.
listenHasTouchChanges(callback);
// callback is called when the result of "hasMouse()" changes.
listenHasMouseChanges(callback);