Ich versuche also, eine Schaltfläche zum Schließen auf die linke Seite zu verschieben, wenn sich der Benutzer auf einem Mac befindet, und auf die rechte Seite, wenn sich der Benutzer auf einem PC befindet. Jetzt untersuche ich den Benutzeragenten, aber er kann für eine zuverlässige Betriebssystemerkennung zu leicht gefälscht werden. Gibt es eine todsichere Möglichkeit, festzustellen, ob das Betriebssystem, auf dem der Browser ausgeführt wird, Mac OS X oder Windows ist? Wenn nicht, was ist besser als das Schnüffeln von Benutzeragenten?
javascript
jquery
alt
quelle
quelle
Antworten:
Die Eigenschaft window.navigator.platform wird nicht gefälscht, wenn die Zeichenfolge userAgent geändert wird. Ich habe auf meinem Mac getestet, ob ich den userAgent auf iPhone oder Chrome Windows ändere. Navigator.platform bleibt MacIntel.
Die Eigenschaft ist auch schreibgeschützt
Ich könnte mir die folgende Tabelle einfallen lassen
Moderne Macs kehren zurück,
navigator.platform == "MacIntel"
aber um einen "Zukunftssicher" zu geben, verwenden Sie keine exakte Übereinstimmung. Hoffentlich ändern sie sich zu etwas wieMacARM
oderMacQuantum
in Zukunft.Um iOS einzuschließen, das auch die "linke Seite" verwendet
Code-Snippet anzeigen
Da die meisten Betriebssysteme die Schaltfläche zum Schließen auf der rechten Seite verwenden, können Sie die Schaltfläche zum Schließen einfach nach links verschieben, wenn sich der Benutzer unter einem MacLike-Betriebssystem befindet. Andernfalls ist dies kein Problem, wenn Sie sie auf die häufigste Seite, rechts, stellen.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
quelle
str.match(regexp) ? true : false
mitregexp.test(string)
. DieRegExp.prototype.test()
Methode gibt nativ einen Booleschen Wert zurück. Daher ist mein bevorzugter Codeconst platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.So einfach ist das:
Sie können dann lustige Dinge tun wie:
quelle
Platform.js
: github.com/bestiejs/platform.jsisPC
sollte nicht gleich sein!isMacintosh();
. Was ist, wenn der Benutzer unter Linux oder einer anderen Plattform arbeitet? Es erkennt, dass sie nicht auf dem Mac sind und denkt, dass sie auf dem PC sind.isPC
(und nichtisWindows
oderisLinux
), weil Linux auf PCs läuft, MacOS aber nur auf Macs.Suchst du danach? Ansonsten lass es mich wissen und ich werde diesen Beitrag entfernen.
Probieren Sie dieses jQuery-Plugin aus: http://archive.plugins.jquery.com/project/client-detect
Demo: http://www.stoimen.com/jquery.client.plugin/
Dies basiert auf quirksmode BrowserDetect ein Wrap für jQuery Browser / OS-Erkennungs-Plugin.
Für begeisterte Leser:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
Weitere Codes rund um das Plugin finden Sie hier: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
quelle
Lassen Sie mich wissen, ob dies funktioniert. So erkennen Sie ein Apple-Gerät (Mac-Computer, iPhones usw.) mithilfe von StackOverflow.com :
Wie lautet die Liste der möglichen Werte für navigator.platform ab heute?
quelle