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
Computadores Mac
Mac68K
Sistema Macintosh 68K.
MacPPC
Sistema Macintosh PowerPC.
MacIntel
Sistema Macintosh Intel.
Dispositivos iOS
iPhone
Iphone.
iPod
iPod Touch.
iPad
iPad.
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 como MacARM
ou MacQuantum
no futuro.
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
Para incluir iOS que também usa o "lado esquerdo"
var isMacLike = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
var isIOS = /(iPhone|iPod|iPad)/i.test(navigator.platform);
var is_OSX = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
var is_iOS = /(iPhone|iPod|iPad)/i.test(navigator.platform);
var is_Mac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
var is_iPhone = navigator.platform == "iPhone";
var is_iPod = navigator.platform == "iPod";
var is_iPad = navigator.platform == "iPad";
/* Output */
var out = document.getElementById('out');
if (!is_OSX) out.innerHTML += "This NOT a Mac or an iOS Device!";
if (is_Mac) out.innerHTML += "This is a Mac Computer!\n";
if (is_iOS) out.innerHTML += "You're using an iOS Device!\n";
if (is_iPhone) out.innerHTML += "This is an iPhone!";
if (is_iPod) out.innerHTML += "This is an iPod Touch!";
if (is_iPad) out.innerHTML += "This is an iPad!";
out.innerHTML += "\nPlatform: " + navigator.platform;
<pre id="out"></pre>
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.
setTimeout(test, 1000); //delay for demonstration
function test() {
var mac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
if (mac) {
document.getElementById('close').classList.add("left");
}
}
#window {
position: absolute;
margin: 1em;
width: 300px;
padding: 10px;
border: 1px solid gray;
background-color: #DDD;
text-align: center;
box-shadow: 0px 1px 3px #000;
}
#close {
position: absolute;
top: 0px;
right: 0px;
width: 22px;
height: 22px;
margin: -12px;
box-shadow: 0px 1px 3px #000;
background-color: #000;
border: 2px solid #FFF;
border-radius: 22px;
color: #FFF;
text-align: center;
font: 14px"Comic Sans MS", Monaco;
}
#close.left{
left: 0px;
}
<div id="window">
<div id="close">x</div>
<p>Hello!</p>
<p>If the "close button" change to the left side</p>
<p>you're on a Mac like system!</p>
</div>
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/