Javascript怎么識別Windows操作系統(tǒng)各個版本

今天小編給大家分享一下Javascript怎么識別Windows操作系統(tǒng)各個版本的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、做網站、成都外貿網站建設公司、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的雞西梨樹網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

在Windows平臺下,還可以從用戶代理字符串中進一步取得具體的操作系統(tǒng)信息。在Windows XP之前,Windows有兩種版本,分別針對家庭用戶和商業(yè)用戶。針對家庭用戶的版本分別是Windows 95、98和Windows ME。而針對商業(yè)用戶的版本則一直叫做Window NT,最后由于市場原因改名為Windows2000。這兩個產品線后來又合并成一個由Windows NT發(fā)展而來的公共的代碼基,代表產品就是Windows XP。隨后,微軟在Windows XP基礎上又構建了Windows Vista。

只有了解這些信息,才能搞清楚用戶代理字符串中Windows操作系統(tǒng)的具體版本。下表列出了不同瀏覽器在表示不同的Windows操作系統(tǒng)時給出的不同字符串。

windows版本 IE4+ Gecko Opera<7 0pera7+ WebKit

95 " Windows 95" "Win95" "Windows 95" "Windows 95 n/a

98 "Windows 98" "Win98" Windows 98" "Windows 98" n/a

NT 4.0 "Windows NT" "WinNT4.O" "Windows NT 4.O" "Windows NT 4.0" n/a

2000 "Windows NT 5.0" "Windows NT 5.O" "Windows 2000" "Windows NT 5.O" n/a

IE "Win 9x 4.90" "Win 9x 4.90" "Windows ME" "Win 9x 4.90" n/a

XP "Windows NT 5.1" "Windows NT 5.1" "Windows XP" "Windows NT 5.1" "Windows NT 5.1"

Vista "Windows NT 6.0" "Windows NT 6.0" n/a "Windows NT 6.0" "Windows NT 6.0"

由于用戶代理字符串中的Windows操作系統(tǒng)版本表示方法各異,因此檢測代碼并不十分直觀。好在,從Windows 2000開始,表示操作系統(tǒng)的字符串大部分都還相同,只有版本號有變化。為了檢測不同的Windows操作系統(tǒng),必須要使用正則表達式。由于使用Opera 7之前版本的用戶已經不多了,因此我們可以忽略這部分瀏覽器。

第一步就是匹配Windows 95和Windows 98這兩個字符串。對這兩個字符串,只有Gecko與其他瀏覽器不同,即沒有"dows",而且"Win"與版本號之間沒有空格。要匹配這個模式,可以使用下面這個簡單的正則表達式:

/Win(?:dows)?([^do](2))/

這個正則表達式中的捕獲組會返回操作系統(tǒng)的版本。由于版本可能是任何兩個字符編碼(例如95、98,9x、NT、ME及XP),因此要使用兩個非空格字符。

Gecko在表示Windows NT時會在末尾添加"4.O",與其查找實際的字符串,不如像下面這樣查找小數值更合適:

/Win(?:dows)?([^do](2))(d+.d+)?/

這樣,正則表達式中就包含了第二個捕獲組,用于取得NT的版本號。由于該版本號對于Windows95和Windows 98而言是不存在的,所以必須設置為可選。這個模式與Opera表示Windows NT的字符串之間唯一的區(qū)別,就是"NT"與“4.o"之間的空格,這在模式中很容易添加:

/Win(?:dows)?([^do](2))87(d+.d+)?/

經過一番修改之后,這個正則表達式也可以成功地匹配Windows ME、Windows XP和WindowsVista的字符串了。具體來說,第一個捕獲組將會匹配95、98、9x、NT、ME或XP。第二個捕獲組則只針對Windows ME及所有Windows NT的變體。這個信息可以作為具體的操作系統(tǒng)信息保存在

system.win屬性中,如下所示:

if (system.win){

if (/Win(?:dows)?([^do]{2})s?(d+.d+)?/.test (ua)){

if (RegExp["$1"]=="NT"){

switch (RegExp["$2"]){

case "5.0":

system.win="2000";

break;

case "5.1":

system.win= "XP";

break:

case "6.0":

system.win="Vista";

break:

default:

system.win="NT";

break;

} else if (RegExp["$1"]==“9x"){

system.win="ME";

} else{

system.win=RegExp["$1"];

)

)

}

如果system.win的值為true,那么就使用這個正則表達式從用戶代理字符串中提取具體的信息。鑒于Windows將來的某個版本也許不能使用這個方法來檢測,所以第一步應該先檢測用戶代理字符串是否與這個模式匹配。在模式匹配的情況下,第一個捕獲組中可能會包含"95"、"98"、"9x"或"NT"。如果這個值是"NT",可以將system.win設置為相應操作系統(tǒng)的字符串;如果是n9x",那么system.win就要設置成"ME";如果是其他值,則將所捕獲的值直接賦給sys七em.win。有了這些檢測平臺的代碼后,我們就可以編寫如下代碼:

if(client.system.win){

if(client.system.win=="XP") {

//說明是XP

} else if (client.system .win=="Vista"){

//說明是Vista

}

}

由于非空字符串會轉換為布爾值true,因此可以將client.system.win作為布爾值用在if語句中。而在需要更多有關操作系統(tǒng)的信息時,則可以使用其中保存的字符串值。

以上就是“Javascript怎么識別Windows操作系統(tǒng)各個版本”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:Javascript怎么識別Windows操作系統(tǒng)各個版本
文章出自:http://muchs.cn/article12/isjjgc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站建設、小程序開發(fā)、網站維護自適應網站、網站策劃、云服務器

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網站