Các window.navigator.platform bất động sản không được giả mạo khi chuỗi UserAgent được thay đổi. Tôi đã thử nghiệm trên máy Mac của mình nếu tôi thay đổi userAgent thành iPhone hoặc Chrome Windows, thì Navigator.platform vẫn là MacIntel.
Thuộc tính cũng ở chế độ chỉ đọc
Tôi có thể nghĩ ra bảng sau
Máy tính Mac
Mac68K
Hệ thống Macintosh 68K.
MacPPC
Hệ thống Macintosh PowerPC.
MacIntel
Hệ thống Macintosh Intel.
Thiết bị iOS
iPhone
điện thoại Iphone.
iPod
iPod Touch.
iPad
iPad.
Mac hiện đại quay trở lại navigator.platform == "MacIntel"
nhưng để đưa ra một số "bằng chứng trong tương lai" không sử dụng đối sánh chính xác, hy vọng chúng sẽ thay đổi thành một cái gì đó tương tự MacARM
hoặc MacQuantum
trong tương lai.
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
Để bao gồm iOS cũng sử dụng "phía bên trái"
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>
Vì hầu hết các hệ điều hành sử dụng nút đóng ở bên phải, bạn chỉ có thể di chuyển nút đóng sang bên trái khi người dùng đang sử dụng MacLike OS, nếu không thì không thành vấn đề nếu bạn đặt nó ở phía phổ biến nhất, bên phải.
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/