Итак, я пытаюсь переместить кнопку «закрыть» в левую сторону, когда пользователь находится на Mac, и правую сторону, когда пользователь находится на ПК. Сейчас я делаю это, исследуя пользовательский агент, но его слишком легко подделать для надежного обнаружения ОС. Есть ли верный способ определить, является ли ОС, на которой работает браузер, Mac OS X или Windows? Если нет, что может быть лучше, чем обнюхивание пользовательского агента?
javascript
jquery
альт
источник
источник
Ответы:
Свойство window.navigator.platform не подделывается при изменении строки userAgent. Я тестировал на своем Mac, если я меняю userAgent на iPhone или Chrome Windows, navigator.platform остается MacIntel.
Свойство также доступно только для чтения
Я мог придумать следующую таблицу
Современные Mac возвращаются,
navigator.platform == "MacIntel"
но чтобы дать некоторые «доказательства будущего», не используйте точное соответствие, надеюсь, они изменятся на что-то подобноеMacARM
илиMacQuantum
в будущем.Чтобы включить iOS, также используйте "левую часть"
Показать фрагмент кода
Поскольку большинство ОС используют кнопку закрытия справа, вы можете просто переместить кнопку закрытия влево, когда пользователь работает на MacLike OS, в противном случае не проблема, если вы поместите ее на наиболее распространенную сторону, справа.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
источник
str.match(regexp) ? true : false
наregexp.test(string)
.RegExp.prototype.test()
Метод изначально возвращает логическое значение. Таким образом, мой предпочтительный код -const platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.Это так просто:
Затем вы можете делать забавные вещи, например:
источник
Platform.js
: github.com/bestiejs/platform.jsisPC
не должен равняться!isMacintosh();
. Что делать, если пользователь использует Linux или другую платформу? Он обнаружит, что они не на Mac, и подумает, что они на ПК.isPC
(а неisWindows
илиisLinux
), потому что Linux работает на ПК, а macOS работает только на Mac.Это то, что вы ищите? В противном случае дайте мне знать, и я удалю этот пост.
Попробуйте этот плагин jQuery: http://archive.plugins.jquery.com/project/client-detect
Демо: http://www.stoimen.com/jquery.client.plugin/
Это основано на quirksmode BrowserDetect, обертке для jQuery-плагина обнаружения браузера / ОС.
Для увлеченных читателей:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
И еще код плагина находится здесь: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
источник
Сообщите мне, работает ли это. Способ обнаружения устройства Apple (компьютеры Mac, iPhone и т. Д.) С помощью StackOverflow.com :
каков список возможных значений для navigator.platform на сегодняшний день?
источник