Донецкий техникум промышленной автоматики

javascript - Кращий спосіб виявлення комп'ютерів Mac OS X або Windows за допомогою JavaScript або jQuery - Qaru

  1. Комп'ютери Mac
  2. iOS-пристрої

властивість window.navigator.platform не підробляють при зміні рядка userAgent. Я перевірив на своєму Mac, якщо я зміню userAgent на iPhone або Chrome Windows, навігатор. Платформа залишається MacIntel.

Властивість також доступно тільки для читання

Я міг придумати таку таблицю

Комп'ютери Mac

Mac68K Macintosh 68K.
MacPPC Macintosh PowerPC.
MacIntel Macintosh Intel.

iOS-пристрої

iPhone айфон.
iPod iPod Touch.
iPad iPad.

Сучасні macs повертає 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/

Vitim.us 01 Серпня. '12 в 3:12 2012-08-01 3:12 джерело поділитися