JavaScript學習6:瀏覽器檢測
由於每個瀏覽器都具有自己獨到的擴充套件,所以在開發階段去判斷瀏覽器是一個非常重要的步驟,雖然瀏覽器開發商在公共介面方面投入了很多精力,努力的去支援最常用的公共功能;但是在現實中,瀏覽器之間的差異,以及不同瀏覽器的“怪癖”卻是非常多的,因此客戶端檢測除了是一種補救措施,更是一種行之有效的開發策略。
在介紹瀏覽器檢測方法之前必須要了解一個物件,那就是navigator物件。
Navigator物件最早由NetscapeNavigator2.0引入,現在已經成為識別客戶端瀏覽器的事實標準,與之前的BOM物件一樣,每個瀏覽器中的navigator物件也都有一套屬於自己的屬性和方法。由於其屬性和方法較多,這裡簡單介紹幾個。
比如要獲取瀏覽器的名稱以及版本號等資訊,如下程式碼所示
alert('瀏覽器使用者代理字串:'+ navigator.userAgent);
alert('瀏覽器的名稱:'+ navigator.appName);
alert('瀏覽器的版本:'+ navigator.appVersion);
alert('瀏覽器所在的系統:'+ navigator.platform);
檢測外掛
外掛是一類特殊的程式,它可以擴充套件瀏覽器的功能,通過下載安裝完成。比如,線上音樂、視訊動畫等等外掛。Navigator物件的plugins屬性是一個陣列,儲存了瀏覽器已經安裝的外掛的完整列表。我們可以寫js程式碼顯示出所有的外掛名以及根據外掛名稱檢測瀏覽器是否安裝了外掛。程式碼如下:
//列舉出所有的外掛名
for(var i=0;i<navigator.plugins.length;i++){
document.write(navigator.plugins[i].name+'<br/>');
}
//檢測非IE瀏覽器外掛是否存在
function hasPlugin(name){
var name=name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++){
if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1){
return true;
}
}
return false;
}
alert(hasPlugin('Flash')); //檢測Flash是否存在
alert(hasPlugin('java')); //檢測Java是否存在
ActiveX控制元件檢測
IE瀏覽器沒有外掛,但提供了ActiveX控制元件。ActiveX控制元件是一種在Web頁面中嵌入物件或陣列的方法。由於在js中,我們無法把所有已經安裝的ActiveX控制元件遍歷出來,但我們還是可以去檢測是否安裝了某個控制元件的。舉例如下
//檢測IE中的控制元件
function hasIEPlugin(name){
try{
new ActiveXObject(name);
return true;
} catch(e){
return false;
}
}
//檢測Flash是否存在
alert(hasIEPlugin('ShockwaveFlash.ShockwaveFlash'));//引數為IE中代表Flash的識別符號
//跨瀏覽器檢測是否支援Flash
function hasFlash(){
var result=hasPlugin('Flash');
if(!result){
result=hasIEPlugin('ShockwaveFlash.ShockwaveFlash');
}
return result;
}
//檢測Flash
alert (hasFlash());
小結:這些基礎知識讓我想起了,在瀏覽網頁的時候,有時候頁面會彈出提示框,說什麼沒安裝Flash或者是其他什麼外掛了控制元件了等等,或許那些檢測就是基於上述的基礎知識而來的吧。
相關文章
- 跨瀏覽器的JavaScript效能檢測工具瀏覽器JavaScript
- 檢測360瀏覽器javascript程式碼例項瀏覽器JavaScript
- JavaScript中的瀏覽器檢測和DOM基礎JavaScript瀏覽器
- 檢測是否為360瀏覽器?瀏覽器
- 瀏覽器特性檢測框架:MODERNIZR瀏覽器框架
- js檢測搜狗瀏覽器、百度瀏覽器、微信瀏覽器程式碼例項JS瀏覽器
- JavaScript 複習之瀏覽器模型JavaScript瀏覽器模型
- 怎麼檢測瀏覽器劫持,瀏覽器劫持的方法介紹瀏覽器
- 常見瀏覽器終端檢測瀏覽器
- 瀏覽器開發者工具開啟檢測瀏覽器
- js+jquery檢測使用者瀏覽器型號(包括對360瀏覽器的檢測)薦JSjQuery瀏覽器
- 檢測當前瀏覽器是否支援cookie瀏覽器Cookie
- 如何檢測瀏覽器是否安裝flash瀏覽器
- JavaScript 使用者代理檢測(瀏覽器型別檢測,執行平臺檢測等) 規範程式碼JavaScript瀏覽器型別
- 檢測瀏覽器是否支援HTML5功能瀏覽器HTML
- 如何在瀏覽器中測試JavaScript程式碼?瀏覽器JavaScript
- 瀏覽器檢視Session瀏覽器Session
- 谷歌瀏覽器禁用JavaScript谷歌瀏覽器JavaScript
- JavaScript瀏覽器事件物件JavaScript瀏覽器事件物件
- JavaScript 瀏覽器事件解析JavaScript瀏覽器事件
- 瀏覽器裡玩機器學習、深度學習瀏覽器機器學習深度學習
- 圖片瀏覽器--學習筆記瀏覽器筆記
- 檢視瀏覽器請求的session 瀏覽器怎麼檢視session瀏覽器Session
- javascript判斷當前瀏覽器是不是微信瀏覽器JavaScript瀏覽器
- 6款好用跨瀏覽器測試工具,高價效比軟體檢測機構安利瀏覽器
- 檢測瀏覽器支援css3D轉換瀏覽器CSSS33D
- JavaScript 偵測手機瀏覽器的五種方法JavaScript瀏覽器
- 谷歌瀏覽器如何禁用javascript谷歌瀏覽器JavaScript
- javascript 獲取瀏覽器資訊JavaScript瀏覽器
- 比特幣學習筆記————附錄6、比特幣瀏覽器命令比特幣筆記瀏覽器
- 檢測當前瀏覽器對音訊的支援度瀏覽器音訊
- 一個瀏覽器Fuzzing框架的學習瀏覽器框架
- javascript事件迴圈(瀏覽器/node)JavaScript事件瀏覽器
- Javascript開啟瀏覽器全屏模式JavaScript瀏覽器模式
- 深度學習之影像目標檢測速覽深度學習
- 【PB案例學習筆記】-04檔案瀏覽器筆記瀏覽器
- 【PB案例學習筆記】-05 圖片瀏覽器筆記瀏覽器
- 【PB案例學習筆記】-02 目錄瀏覽器筆記瀏覽器