上万部爽片,立即观看,在线观看,日韩av无码久久精品免费,欧美性受xxxx喷潮,欧洲男同gay,日韩精品一区二区三区

十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡微信小程序

百恒網(wǎng)絡

南昌百恒網(wǎng)絡

結合實例介紹用戶代理字符串檢測技術

百恒網(wǎng)絡 2013-07-06 4944

考慮到歷史原因以及現(xiàn)代瀏覽器中用戶代理字符串的使用方式,通過用戶代理字符串來檢測特定的瀏覽器并不是一件輕松的事。因此南昌網(wǎng)站設計公司技術人員認為,首先要確定的往往是你需要多么具體的瀏覽器信息。一般情況 下,知道呈現(xiàn)引擎和最低限度的版本就足以決定正確的操作方法了。例如,我們不推薦使用下列代碼:

if (isIE6 if isIE7){//不推薦! //代碼

}

這個例子是想要在瀏覽器為IE6或7時執(zhí)行相應代碼。這種代碼其實是很脆弱的,因為它要依據(jù)特定的版本來決定做什么。如果是IE8怎么辦呢?只要IE有新版本出來,就必須更新這些代碼。不過,像下面這樣使用相對版本號則可以避免此問題:

if (ieVer>=6){ //代碼

)

這個例子首先檢測IE的版本號是否至少等于6,如果是則執(zhí)行相應操作。這樣就可以確保相應的代碼將來照樣能夠起作用。我們下面的瀏覽器檢測腳本就將本著這種思路來編寫。

如前所述,確切知道瀏覽器的名字和版本號不如確切知道它使用的是什么呈現(xiàn)引擎。如果Firefox、 Camino和Netscape都使用相同版本的Gecko,那它們一定支持相同的特性。類似地,不管是什么瀏覽器,只要它跟Safari 3使用的是同一個版本的WebKit,那么該瀏覽器也就跟Safari 3具備同樣的功能。 因此,我們要編寫的腳本將主要檢測五大呈現(xiàn)引擎:IE.Gecko.WebKit.KHTML和Opera。

為了不在全局作用域中添加多余的變量,我們將使用模塊增強模式來封裝檢測腳本。檢測腳本的基本代碼結構如下所示:

var client=function(){

//呈現(xiàn)引擎

var engine={

ie: O,

gecko:0,

webkit:0,

khtml:0.

opera:O,

//具體的版本號

ver:null

};

//在此檢測呈現(xiàn)引擎、平臺和設備

return(

engine : engine

};

}();

這里聲明了一個名為client的全局變量,用于保存相關信息。匿名函數(shù)內部定義了一個局部變量engine,它是一個包含默認設置的對象字面量。在這個對象字面量中,每個呈現(xiàn)引擎都對應著一個屬性,屬性的值默認為0。如果檢測到了哪個呈現(xiàn)引擎,那么就以浮點數(shù)值形式將該引擎的版本號

寫入相應的屬性。而呈現(xiàn)引擎的完整版本(是一個字符串),則被寫入ver屬性。作這樣的區(qū)分可以支持像下面這樣編寫代碼:

if(client.engine.ie){//如果是IE,client.ie的值應該大于0

//針對IE的代碼

} else if (client.engine.gecko>1.5)(

if (client.englne.ver=="1.8.1"){

//針對這個版本執(zhí)行某些操作

}

}

在檢測到一個呈現(xiàn)引擎之后,其client.engine中對應的屬性將被設置為一個大于0的值,該值可以轉換成布爾值true。這樣,就可以在if語句中檢測相應的屬性,以確定當前使用的呈現(xiàn)引擎,連具體的版本號都不必考慮。鑒于每個屬性都包含一個浮點數(shù)值,因此有可能丟失某些版本信息。例如,將字符串”1.8.1傳入parseFloat()后會得到數(shù)值1.8。不過,在必要的時候可以檢測ver屬性,該屬性中會保存完整的版本信息。

要正確地識別呈現(xiàn)引擎,關鍵是檢測順序要正確。由于用戶代理字符串存在諸多不一致的地方,如果檢測順序不對,很可能會導致檢測結果不正確。為此,第一步就是識別Opera,因為它的用戶代理字符串有可能完全模仿其他瀏覽器。我們不相信Opera,是因為(任何情況下)其用戶代理字符串(都)不會將自己標識為Opera。

要識別Opera,必須得檢測window.opera對象。Opera 5及更高版本中都有這個對象,用以保存與瀏覽器相關的標識信息以及與瀏覽器直接交互。在Opera 7.6及更高版本中,調用version()方法可以返回一個表示瀏覽器版本的字符串,而這也是確定Opera版本號的最佳方式。要檢測更早版本的 Opera,可以直接檢查用戶代理字符串,因為那些版本還不支持隱瞞身份。不過,2007底Opera的最高版本已經(jīng)是9.5了,所以不太可能有人還在使用7.6之前的版本。那么,檢測呈現(xiàn)引擎代碼的第一步,就是編寫如下代碼:

if (window.opera){

engine.ver=window.opera.version();

engine.opera=parseFloat( engine.ver);

}

這里,將版本的字符串表示保存在了englne.ver中,將浮點數(shù)值表示的版本保存在了egine.opera中。如果瀏覽器是Opera,測試window.opera就會返回true;否則,就要看看是其他的什么瀏覽器了。

本文僅限內部技術人員學習交流,不得作于其他商業(yè)用途.文章出自:南昌網(wǎng)站建設公司-百恒網(wǎng)絡 http://syshcw.cn 如轉載請注明出處!

400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×