2010-10-23 31 views

回答

23

嘗試navigator.appVersion

http://msdn.microsoft.com/en-us/library/ms533080(v=VS.85).aspx
https://developer.mozilla.org/en/DOM/window.navigator.appVersion

我的Windows 7在這裏和navigator.appVersion返回包含 「NT 6.1」 在這些瀏覽器的字符串:鉻,歌劇,Safari瀏覽器,IE9測試版。

只有Firefox不返回該字符串:(

順便說一句的是信息,WinXP的是 「NT 5.1」,Vista的 「NT 6.0」 ......

更新

navigator.userAgent在所有5個瀏覽器中返回「NT版本」字符串,這意味着userAgent是能夠告訴Windows版本的屬性

+0

的navigator.userAgent應該包含這個字符串(NT 5.1)也於Firefox瀏覽器。 – 2010-10-23 23:02:19

+0

@ Dr.Molle你可以測試它嗎?在Firefox的地址欄中輸入'javascript:alert(navigator.appVersion)'並按ENTER鍵。這可能是因爲我的Firefox安裝損壞了(因爲我同時運行3.6和4beta) – 2010-10-23 23:04:29

+0

我的Firefox返回appVersion'5.0(Windows; de)'。我在WinXP上使用3.6.11。 'navigator.userAgent'返回一個包含所需信息的字符串** NT 5.1 ** – 2010-10-23 23:12:04

1

看來,您可以使用navigator主機對象:

var os = navigator.platform 

這裏看到更多的信息: http://www.jguru.com/faq/view.jsp?EID=1100686

另外: http://www.quirksmode.org/js/detect.html

+1

'navigator'不是一個類,它是瀏覽器中存在的主機對象... – 2010-10-23 22:44:09

+0

是的,對不起。我會糾正我的帖子。 – 2010-10-23 22:44:46

+0

我試圖找到更多的信息,我發現這個http://www.w3schools.com/jsref/prop_nav_platform.asp這是沒有很好的記錄。 navigator.platform有更好的文檔嗎?編輯:看起來像,根據https://developer.mozilla.org/en/DOM/window.navigator.platform,你不能檢測Windows內的特定操作系統版本 – reefine 2010-10-23 22:47:06

1

的用戶代理字符串可以讓你知道的版本號,但不是版本名稱。例如,如前所述,Windows NT 5.1意味着XP,Windows NT 6.0意味着Vista等。 我寫了這個detect-os-version組件,它將返回一個格式化的版本名稱。它還將幫助您檢測其他平臺的版本。

隨意導入和使用如在這些例子:

detectOsVersion.get() => {os: 'Windows', version: 'XP'} 
detectOsVersion.get() => {os: 'BlackBerry', version: '7.1.0.346'}  
detectOsVersion.get() => {os: 'Android', version: '4.2.2'} 
detectOsVersion.get() => {os: 'iOS', version: '5.1.1'} 
detectOsVersion.get() => {os: 'Mac', version: '10.7.1'}