每個(gè)瀏覽器中的navigator對象都有一套自己的屬性
image
image
1. 檢測插件
- 對于非IE瀏覽器,可使用plugins數(shù)組來達(dá)成目的窟绷。數(shù)組中的每一項(xiàng)都包含下列屬性
- name:插件名
- description:插件描述
- filename:插件的文件名
- length:插件說出你的MIME類型數(shù)量
function hasPlugin(name) {
name = name.toLowerCase(); //將傳入的參數(shù)name轉(zhuǎn)換為小寫
for (var i = 0; i < navigator.plugins.length; i++) {
//通過indexOf檢測傳入的名稱是否出現(xiàn)在字符串的某個(gè)地方
if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1 ) {
return true;
}
}
return false;
}
//檢測Flash
console.log(hasPlugin("Flash"));
- 對于IE瀏覽器栏笆,檢測插件唯一方式是使用專有的
ActiveXObject
類型驯用。參數(shù)為COM標(biāo)識符
function hasIEPlugin(name) {
try {
new ActiveXObject(name);
return true;
} catch (ex) {
return false;
}
}
//檢測Flash
console.log(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
由于兩種插件的方法差別太大没咙,故典型做法是針對每個(gè)插件分別創(chuàng)建檢測函數(shù)
function hasFlash(){
var result = hasPlugin("Flash");
if (!result) {
result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
}
return result;
}
2.注冊處理程序
Firefox2為navigator對象新增了registerContentHandler()
和registerProtocolHandler()
兩個(gè)方法立膛。
registerContentHandler()
參數(shù)
- 要處理的MIME類型
- 可以處理該MIME類型的頁面的URL
- 應(yīng)用程序的名稱
registerProtocolHandler()
參數(shù)
- 要處理的協(xié)議 (mailto或ftp等)
- 處理該協(xié)議的頁面的URL
- 應(yīng)用程序的名稱