Свойство window.navigator.platform не подделывается при изменении строки userAgent. Я тестировал на своем Mac, если я меняю userAgent на iPhone или Chrome Windows, navigator.platform остается MacIntel.

Свойство также доступно только для чтения

Я мог придумать следующую таблицу
Компьютеры Mac
Mac68K Система Macintosh 68K.
MacPPC Система Macintosh PowerPC.
MacIntel Система Macintosh Intel.
Устройства iOS
iPhone iPhone.
iPod Ipod Touch.
iPad iPad.
Современные Mac возвращаются, navigator.platform == "MacIntel"но чтобы дать некоторые «доказательства будущего», не используйте точное соответствие, надеюсь, они изменятся на что-то подобное MacARMили MacQuantumв будущем.
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
Чтобы включить iOS, также используйте "левую часть"
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>
Поскольку большинство ОС используют кнопку закрытия справа, вы можете просто переместить кнопку закрытия влево, когда пользователь работает на MacLike OS, в противном случае не проблема, если вы поместите ее на наиболее распространенную сторону, справа.
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/