Próbuję więc przesunąć przycisk „zamknij” w lewą stronę, gdy użytkownik jest na komputerze Mac, a prawą, gdy jest na komputerze PC. Teraz robię to, badając klienta użytkownika, ale można go zbyt łatwo sfałszować, aby zapewnić niezawodne wykrywanie systemu operacyjnego. Czy istnieje pewny sposób na wykrycie, czy system operacyjny, w którym działa przeglądarka, to Mac OS X czy Windows? Jeśli nie, co jest lepsze niż wąchanie klienta użytkownika?
javascript
jquery
alt
źródło
źródło
Odpowiedzi:
Właściwość window.navigator.platform nie jest sfałszowana po zmianie ciągu userAgent. Testowałem na moim Macu, jeśli zmienię userAgent na iPhone'a lub Chrome Windows, navigator.platform pozostanie MacIntel.
Właściwość jest również tylko do odczytu
Mógłbym wymyślić następującą tabelę
Współczesne komputery Mac powracają,
navigator.platform == "MacIntel"
ale aby zapewnić „przyszłościowe zabezpieczenie”, nie używaj dokładnego dopasowania, miejmy nadzieję, że zmienią się na coś podobnegoMacARM
lubMacQuantum
w przyszłości.Aby uwzględnić iOS, który również używa „lewej strony”
Pokaż fragment kodu
Ponieważ większość systemów operacyjnych używa przycisku zamykania po prawej stronie, możesz po prostu przesunąć przycisk zamykania w lewo, gdy użytkownik korzysta z systemu MacLike OS, w przeciwnym razie nie stanowi problemu, jeśli umieścisz go po najbardziej powszechnej stronie, po prawej.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
źródło
str.match(regexp) ? true : false
zregexp.test(string)
.RegExp.prototype.test()
Metoda natywnie zwraca wartość logiczną. Dlatego moim preferowanym kodem jestconst platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.To takie proste:
Możesz wtedy robić śmieszne rzeczy, takie jak:
źródło
Platform.js
: github.com/bestiejs/platform.jsisPC
nie powinno równać się!isMacintosh();
. Co jeśli użytkownik korzysta z systemu Linux lub innej platformy? Wykryje, że nie ma ich na komputerze Mac i pomyśli, że są na komputerze.isPC
(i nieisWindows
lubisLinux
), ponieważ Linux działa na komputerach PC, ale macOS działa tylko na komputerach Mac.Czy tego szukasz? W przeciwnym razie daj mi znać, a usunę ten post.
Wypróbuj tę wtyczkę jQuery: http://archive.plugins.jquery.com/project/client-detect
Demo: http://www.stoimen.com/jquery.client.plugin/
Jest to oparte na quirksmode BrowserDetect a wrap dla wtyczki jQuery do wykrywania przeglądarki / systemu operacyjnego.
Dla zapalonych czytelników:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
Więcej kodu wokół wtyczki znajduje się tutaj: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
źródło
Daj mi znać, czy to działa. Sposób wykrywania urządzenia Apple (komputery Mac, iPhone itp.) Z pomocą StackOverflow.com :
Jaka jest lista możliwych wartości dla navigator.platform na dzień dzisiejszy?
źródło