J'essaye donc de déplacer un bouton «fermer» vers le côté gauche lorsque l'utilisateur est sur Mac et le côté droit lorsque l'utilisateur est sur PC. Maintenant, je le fais en examinant l'agent utilisateur, mais il peut être trop facilement usurpé pour une détection fiable du système d'exploitation. Existe-t-il un moyen infaillible de détecter si le système d'exploitation sur lequel le navigateur s'exécute est Mac OS X ou Windows? Sinon, quoi de mieux que le reniflement d'agent utilisateur?
110
Réponses:
La propriété window.navigator.platform n'est pas usurpée lorsque la chaîne userAgent est modifiée. J'ai testé sur mon Mac si je change le userAgent pour iPhone ou Chrome Windows, navigator.platform reste MacIntel.
La propriété est également en lecture seule
Je pourrais proposer le tableau suivant
Les macs modernes sont de retour,
navigator.platform == "MacIntel"
mais pour donner une "preuve future", n'utilisez pas de correspondance exacte, j'espère qu'ils changeront en quelque chose commeMacARM
ouMacQuantum
dans le futur.Pour inclure iOS qui utilise également le "côté gauche"
Afficher l'extrait de code
Étant donné que la plupart des systèmes d'exploitation utilisent le bouton de fermeture à droite, vous pouvez simplement déplacer le bouton de fermeture vers la gauche lorsque l'utilisateur est sur un système d'exploitation MacLike, sinon ce n'est pas un problème si vous le placez du côté le plus courant, à droite.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
la source
str.match(regexp) ? true : false
parregexp.test(string)
. LaRegExp.prototype.test()
méthode retourne nativement un booléen. Ainsi, mon code préféré estconst platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.C'est aussi simple que ça:
Vous pouvez faire des choses amusantes alors comme:
la source
Platform.js
: github.com/bestiejs/platform.jsisPC
ne doit pas être égal à!isMacintosh();
. Que faire si l'utilisateur est sous Linux ou sur toute autre plateforme différente? Il détectera qu'ils ne sont pas sur mac et pensera qu'ils sont sur PC.isPC
(et nonisWindows
ouisLinux
) parce que Linux fonctionne sur des PC mais macOS ne fonctionne que sur des Mac.Est-ce ce que vous recherchez? Sinon, faites-le moi savoir et je supprimerai ce message.
Essayez ce plugin jQuery: http://archive.plugins.jquery.com/project/client-detect
Démo: http://www.stoimen.com/jquery.client.plugin/
Ceci est basé sur quirksmode BrowserDetect une enveloppe pour le plugin de détection de navigateur / os jQuery.
Pour les lecteurs assidus:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
Et plus de code autour du plugin se trouve ici: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
la source
Laissez-moi savoir si cela fonctionne. Méthode de détection d'un appareil Apple (ordinateurs Mac, iPhones, etc.) avec l'aide de StackOverflow.com :
Quelle est la liste des valeurs possibles pour navigator.platform à ce jour?
la source