Estou tentando mover o botão "Fechar" para o lado esquerdo quando o usuário está no Mac e para o lado direito quando o usuário está no PC. Agora estou fazendo isso examinando o agente do usuário, mas ele pode ser facilmente falsificado para uma detecção confiável do sistema operacional. Existe uma maneira infalível de detectar se o sistema operacional no qual o navegador está sendo executado é Mac OS X ou Windows? Se não, o que é melhor do que farejar o agente do usuário?
javascript
jquery
alt
fonte
fonte
Respostas:
A propriedade window.navigator.platform não é falsificada quando a string userAgent é alterada. Eu testei no meu Mac se eu mudar o userAgent para iPhone ou Chrome Windows, navigator.platform continua sendo MacIntel.
A propriedade também é somente leitura
Eu poderia chegar à seguinte tabela
Os macs modernos estão de volta,
navigator.platform == "MacIntel"
mas para dar alguma "prova futura", não use a correspondência exata, com sorte eles mudarão para algo comoMacARM
ouMacQuantum
no futuro.Para incluir iOS que também usa o "lado esquerdo"
Exibir trecho de código
Como a maioria dos sistemas operacionais usa o botão Fechar à direita, você pode simplesmente mover o botão Fechar para a esquerda quando o usuário está em um MacLike OS, caso contrário, não será um problema se você colocá-lo no lado mais comum, o direito.
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/
fonte
str.match(regexp) ? true : false
porregexp.test(string)
. ORegExp.prototype.test()
método retorna nativamente um booleano. Portanto, meu código preferido éconst platformIsMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
.É simples assim:
Você pode fazer coisas engraçadas como:
fonte
Platform.js
: github.com/bestiejs/platform.jsisPC
não deve ser igual a!isMacintosh();
. E se o usuário estiver no Linux ou em qualquer outra plataforma diferente? Ele detectará que eles não estão no mac e pensará que estão no PC.isPC
(e nãoisWindows
ouisLinux
) porque o Linux roda em PCs, mas o macOS só roda em Macs.É isso que você está procurando? Caso contrário, me avise e eu removerei esta postagem.
Experimente este plugin jQuery: http://archive.plugins.jquery.com/project/client-detect
Demo: http://www.stoimen.com/jquery.client.plugin/
Isso é baseado no quirksmode BrowserDetect um wrap para o plugin de detecção de navegador / sistema operacional jQuery.
Para leitores interessados:
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
http://www.quirksmode.org/js/support.html
E mais código sobre o plugin reside aqui: http://www.stoimen.com/jquery.client.plugin/jquery.client.js
fonte
Deixe-me saber se isso funciona. Maneira de detectar um dispositivo Apple (computadores Mac, iPhones, etc.) com ajuda de StackOverflow.com :
Qual é a lista de valores possíveis para navigator.platform atualmente?
fonte