由于Windows XP的補丁SP2,對IE6的安全性也做了很多的提升,使得有不少原來(lái)我們可以使用的功能,會(huì )變得很奇怪甚至歇菜掉:(。特別是彈出窗口、模態(tài)窗口和Popup窗口等受的影響相當大。那么我能不能判斷用戶(hù)使用的IE6是普通IE6(IE6sp1)還是IE6+xp sp2呢?
下面是兩個(gè)比較典型的IE6瀏覽器UserAgent字段:
1、Windows XP + SP1 (NT 5.1)
Connection: Keep-Alive
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn
Host: zhilee.aehk.com
Referer: http://www.cnblogs.com/birdshome/archive/2005/03/11/113723.html
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) 2、Windows 2003 + SP1 (NT 5.2)
Connection: Keep-Alive
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn
Host: zhilee.aehk.com
Referer: http://www.cnblogs.com/bluefee/archive/2005/03/28/127455.html
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
UA-CPU: x86 這兩個(gè)UA string和普通的UA string最大區別就是,里面多了一個(gè)"SV1"標志,這個(gè)是什么意思呢?SV1的本意是
"Security Version 1",它就是用來(lái)專(zhuān)門(mén)標注使用IE6瀏覽器的用戶(hù)使用的操作系統是否是XPSP2或WS03SP1。
既然XPSP2和WS03SP1對IE6有影響,為什么不提升IE的版本號,而是單獨使用SVX標注呢?IE開(kāi)發(fā)團隊是這么解釋的,他們說(shuō)雖然這兩個(gè)操作系統的補丁對IE6的設置有影響,但是并沒(méi)有修改IE6本身的任何功能,比如呈現、DHTML和DOM等。所以這樣的一些安全設置不適合升級IE本身的版本號。
在后續的IE版本中,SVX標志可能會(huì )被移除,所以目前我們使用UA string檢測操作系統的SP版本,只是一個(gè)臨時(shí)的辦法。
var ua = navigator.userAgent;
if ( ua.indexOf("SV1") != -1 )
{
if ( ua.indexOf("NT 5.1") != -1 )
{
// windows xp + sp2
}
else if ( ua.indexOf("NT 5.2") != -1 )
{
// windows 2003 + sp1
}
else
{
// wrong user agent string
}
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。