Właściwość window.navigator.platform nie jest sfałszowana po zmianie ciągu userAgent. Testowałem na moim Macu, jeśli zmienię userAgent na iPhone'a lub Chrome Windows, navigator.platform pozostanie MacIntel.

Właściwość jest również tylko do odczytu

Mógłbym wymyślić następującą tabelę
Komputery Mac
Mac68K System Macintosh 68K.
MacPPC System Macintosh PowerPC.
MacIntel System Macintosh Intel.
Urządzenia iOS
iPhone iPhone.
iPod iPod Touch.
iPad iPad.
Współczesne komputery Mac powracają, navigator.platform == "MacIntel"ale aby zapewnić „przyszłościowe zabezpieczenie”, nie używaj dokładnego dopasowania, miejmy nadzieję, że zmienią się na coś podobnego MacARMlub MacQuantumw przyszłości.
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
Aby uwzględnić iOS, który również używa „lewej strony”
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>
Ponieważ większość systemów operacyjnych używa przycisku zamykania po prawej stronie, możesz po prostu przesunąć przycisk zamykania w lewo, gdy użytkownik korzysta z systemu MacLike OS, w przeciwnym razie nie stanowi problemu, jeśli umieścisz go po najbardziej powszechnej stronie, po prawej.
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/