caoporm97国产在线视频|欧美性XXXXX精品|一本一道久久a久久精品综合开|精品久久久久久久久久久AⅤ|

十年專注于品牌網(wǎng)站建設(shè) 十年專注于品牌網(wǎng)站建設(shè),低調(diào)、高逼格、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

Windows操作系統(tǒng)各個(gè)版本識(shí)別方法 Javascript

南昌網(wǎng)頁(yè)設(shè)計(jì)公司技術(shù)員 2013/7/12 5412

   Windows是我們最常見(jiàn)平臺(tái),也是使用最為廣泛的平臺(tái),因此南昌網(wǎng)站設(shè)計(jì)公司單獨(dú)將這如何識(shí)別Windows各種版本進(jìn)行詳細(xì)的說(shuō)明和介紹,也希望此文對(duì)廣大網(wǎng)站建設(shè)公司技術(shù)人員有所幫助.上一篇文章我介紹了識(shí)別不同平臺(tái)Window、Mac、Unix(Linux)方法,接下來(lái)我們進(jìn)行詳細(xì)的分析:
    在Windows平臺(tái)下,還可以從用戶代理字符串中進(jìn)一步取得具體的操作系統(tǒng)信息。在Windows XP之前,Windows有兩種版本,分別針對(duì)家庭用戶和商業(yè)用戶。針對(duì)家庭用戶的版本分別是Windows 95、98和Windows ME。而針對(duì)商業(yè)用戶的版本則一直叫做Window NT,最后由于市場(chǎng)原因改名為Windows2000。這兩個(gè)產(chǎn)品線后來(lái)又合并成一個(gè)由Windows NT發(fā)展而來(lái)的公共的代碼基,代表產(chǎn)品就是Windows XP。隨后,微軟在Windows XP基礎(chǔ)上又構(gòu)建了Windows Vista。
   只有了解這些信息,才能搞清楚用戶代理字符串中Windows操作系統(tǒng)的具體版本。下表列出了不同瀏覽器在表示不同的Windows操作系統(tǒng)時(shí)給出的不同字符串。

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)版本表示方法各異,因此檢測(cè)代碼并不十分直觀。好在,從Windows 2000開(kāi)始,表示操作系統(tǒng)的字符串大部分都還相同,只有版本號(hào)有變化。為了檢測(cè)不同的Windows操作系統(tǒng),必須要使用正則表達(dá)式。由于使用Opera 7之前版本的用戶已經(jīng)不多了,因此我們可以忽略這部分瀏覽器。
   第一步就是匹配Windows 95和Windows 98這兩個(gè)字符串。對(duì)這兩個(gè)字符串,只有Gecko與其他瀏覽器不同,即沒(méi)有"dows",而且"Win"與版本號(hào)之間沒(méi)有空格。要匹配這個(gè)模式,可以使用下面這個(gè)簡(jiǎn)單的正則表達(dá)式:
/Win(?:dows)?([^do](2))/
這個(gè)正則表達(dá)式中的捕獲組會(huì)返回操作系統(tǒng)的版本。由于版本可能是任何兩個(gè)字符編碼(例如95、98,9x、NT、ME及XP),因此要使用兩個(gè)非空格字符。
Gecko在表示W(wǎng)indows NT時(shí)會(huì)在末尾添加"4.O",與其查找實(shí)際的字符串,不如像下面這樣查找小數(shù)值更合適:
/Win(?:dows)?([^do](2))(\d+\.\d+)?/
這樣,正則表達(dá)式中就包含了第二個(gè)捕獲組,用于取得NT的版本號(hào)。由于該版本號(hào)對(duì)于Windows95和Windows 98而言是不存在的,所以必須設(shè)置為可選。這個(gè)模式與Opera表示W(wǎng)indows NT的字符串之間唯一的區(qū)別,就是"NT"與“4.o"之間的空格,這在模式中很容易添加:
/Win(?:dows)?([^do](2))\87(\d+\.\d+)?/
    經(jīng)過(guò)一番修改之后,這個(gè)正則表達(dá)式也可以成功地匹配Windows ME、Windows XP和WindowsVista的字符串了。具體來(lái)說(shuō),第一個(gè)捕獲組將會(huì)匹配95、98、9x、NT、ME或XP。第二個(gè)捕獲組則只針對(duì)Windows ME及所有Windows NT的變體。這個(gè)信息可以作為具體的操作系統(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,那么就使用這個(gè)正則表達(dá)式從用戶代理字符串中提取具體的信息。鑒于Windows將來(lái)的某個(gè)版本也許不能使用這個(gè)方法來(lái)檢測(cè),所以第一步應(yīng)該先檢測(cè)用戶代理字符串是否與這個(gè)模式匹配。在模式匹配的情況下,第一個(gè)捕獲組中可能會(huì)包含"95"、"98"、"9x"或"NT"。如果這個(gè)值是"NT",可以將system.win設(shè)置為相應(yīng)操作系統(tǒng)的字符串;如果是n9x",那么system.win就要設(shè)置成"ME";如果是其他值,則將所捕獲的值直接賦給sys七em.win。有了這些檢測(cè)平臺(tái)的代碼后,我們就可以編寫如下代碼:
if(client.system.win){
if(client.system.win=="XP") {
//說(shuō)明是XP
} else if (client.system .win=="Vista"){
//說(shuō)明是Vista
}
}
    由于非空字符串會(huì)轉(zhuǎn)換為布爾值true,因此可以將client.system.win作為布爾值用在if語(yǔ)句中。而在需要更多有關(guān)操作系統(tǒng)的信息時(shí),則可以使用其中保存的字符串值。

   本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò) http://m.gimmickmag.com 如轉(zhuǎn)載請(qǐng)注明出處!

 

 

400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×