Así que estoy tratando de mover un botón "cerrar" al lado izquierdo cuando el usuario está en Mac y al lado derecho cuando el usuario está en PC. Ahora lo hago examinando el agente de usuario, pero se puede falsificar con demasiada facilidad para una detección confiable del sistema operativo. ¿Existe una forma segura de detectar si el sistema operativo en el que se ejecuta el navegador es Mac OS X o Windows? Si no es así, ¿qué es mejor que el rastreo de agentes de usuario?
javascript
jquery
alt
fuente
fuente
Respuestas:
La propiedad window.navigator.platform no se falsifica cuando se cambia la cadena userAgent. Probé en mi Mac si cambio el userAgent a iPhone o Chrome Windows, navigator.platform sigue siendo MacIntel.
La propiedad también es de solo lectura
Se me ocurrió la siguiente tabla
Los macs modernos regresan,
navigator.platform == "MacIntel"
pero para dar alguna "prueba de futuro" no utilices la coincidencia exacta, con suerte cambiarán a algo comoMacARM
oMacQuantum
en el futuro.Para incluir iOS que también usa el "lado izquierdo"
Mostrar fragmento de código
Dado que la mayoría de los sistemas operativos usan el botón de cierre a la derecha, puede mover el botón de cierre hacia la izquierda cuando el usuario está en un sistema operativo MacLike; de lo contrario, no es un problema si lo coloca en el lado más común, el derecho.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
fuente
str.match(regexp) ? true : false
conregexp.test(string)
. ElRegExp.prototype.test()
método devuelve de forma nativa un valor booleano. Por lo tanto, mi código preferido esconst platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.Es tan simple como eso:
Puedes hacer cosas divertidas y luego como:
fuente
Platform.js
: github.com/bestiejs/platform.jsisPC
no debería ser igual a!isMacintosh();
. ¿Qué pasa si el usuario está en Linux o en cualquier otra plataforma diferente? Detectará que no están en Mac y pensará que están en PC.isPC
(y noisWindows
oisLinux
) porque Linux se ejecuta en PC, pero macOS solo se ejecuta en Mac.¿Es esto lo que estás buscando? De lo contrario, avíseme y eliminaré esta publicación.
Pruebe este complemento de jQuery: http://archive.plugins.jquery.com/project/client-detect
Demostración: http://www.stoimen.com/jquery.client.plugin/
Esto se basa en quirksmode BrowserDetect, una envoltura para el complemento de detección de navegador / sistema operativo jQuery.
Para lectores entusiastas:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
Y más código sobre el complemento reside aquí: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
fuente
Hazme saber si esto funciona. Manera de detectar un dispositivo Apple (computadoras Mac, iPhones, etc.) con la ayuda de StackOverflow.com :
¿Cuál es la lista de valores posibles para navigator.platform a partir de hoy?
fuente