Die Eigenschaft window.navigator.platform wird nicht gefälscht, wenn die Zeichenfolge userAgent geändert wird. Ich habe auf meinem Mac getestet, ob ich den userAgent auf iPhone oder Chrome Windows ändere. Navigator.platform bleibt MacIntel.

Die Eigenschaft ist auch schreibgeschützt

Ich könnte mir die folgende Tabelle einfallen lassen
Mac-Computer
Mac68K Macintosh 68K-System.
MacPPC Macintosh PowerPC-System.
MacIntel Macintosh Intel-System.
iOS-Geräte
iPhone iPhone.
iPod IPod Touch.
iPad iPad.
Moderne Macs kehren zurück, navigator.platform == "MacIntel"aber um einen "Zukunftssicher" zu geben, verwenden Sie keine exakte Übereinstimmung. Hoffentlich ändern sie sich zu etwas wie MacARModer MacQuantumin Zukunft.
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
Um iOS einzuschließen, das auch die "linke Seite" verwendet
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>
Da die meisten Betriebssysteme die Schaltfläche zum Schließen auf der rechten Seite verwenden, können Sie die Schaltfläche zum Schließen einfach nach links verschieben, wenn sich der Benutzer unter einem MacLike-Betriebssystem befindet. Andernfalls ist dies kein Problem, wenn Sie sie auf die häufigste Seite, rechts, stellen.
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/