Navigator 對象包含有關瀏覽器的信息。下表列出全部navigator對象的方法及屬性。前端
屬性或方法 | 描述 | IE | Firefox | Safari/Chrome | Opera |
---|---|---|---|---|---|
appCodeName | 返回瀏覽器的名稱。一般都是Mozilla,即便用非Mozilla瀏覽器也是如此 | 3.0+ | 1.0+ | 1.0+ | 7.0+ |
appMinorVersion | 次版本信息 | 4.0+ | - | - | 9.5+ |
appName | 完整的瀏覽器名稱 | 3.0+ | 1.0+ | 1.0+ | 7.0+ |
appVersion | 瀏覽器的版本 | 3.0+ | 1.0+ | 1.0+ | 7.0+ |
buildID | 瀏覽器編譯版本 | - | 2.0+ | - | - |
cookieEnabled | 表示cookie是否啓用 | 4.0+ | 1.0+ | 1.0+ | 7.0+ |
cpuClass | 客戶端計算器中使用的cpu類型 | 4.0+ | - | - | - |
javaEnabled | 表示當前瀏覽器是否啓用了java | 4.0+ | 1.0+ | 1.0+ | 7.0+ |
language | 瀏覽器的主語言 | - | 1.0+ | 1.0+ | 7.0+ |
mimeTypes | 在瀏覽器中註冊的mime類型數組 | 4.0+ | 1.0+ | 1.0+ | 7.0+ |
onLine | 表示瀏覽器是否鏈接到因特網 | 4.0+ | 1.0+ | - | 9.5+ |
opsProfile | 彷佛早就不用了。查不到相關文檔 | 4.0+ | - | - | - |
oscpu | 客戶端計算機操做系統或使用的cpu | - | 1.0+ | - | - |
platform | 瀏覽器所在的系統平臺 | 4.0+ | 1.0+ | 1.0+ | 7.0+ |
plugins | 瀏覽器中安裝插件信息的數組 | 4.0+ | 1.0+ | 1.0+ | 7.0+ |
preference() | 設置用戶首選項 | - | 1.5+ | - | - |
product | 產品名稱 | - | 1.0+ | 1.0+ | - |
productSub | 關於產品的次要信息 | - | 1.0+ | 1.0+ | - |
registerContentHandler() | 針對特定的mime類型將一個站點註冊未處理程序 | - | 2.0+ | - | - |
registerProtocolHandler() | 針對特定的協議將一個站點註冊爲處理程序 | - | 2.0+ | - | - |
securityPolicy | 已廢棄。安全策略的名稱 | - | 1.0+ | - | - |
systemLanguage | 操做系統的語言 | 4.0+ | - | - | - |
taintEnabled() | 已經廢棄。表示是否容許變量被修改 | 4.0+ | 1.0+ | - | 7.0+ |
userAgent | 瀏覽器的用戶代理字符串 | 3.0+ | 1.0+ | 1.0+ | 7.0+ |
userLanguage | 操做系統默認語言 | 4.0+ | - | - | 7.0 |
userProfile | 藉以訪問用戶我的信息的對象 | 4.0+ | - | - | - |
vendor | 瀏覽器的品牌 | - | 1.0+ | 1.0+ | - |
vendorSub | 有關供應商的次要信息 | - | 1.0+ | 1.0+ | - |
// 檢測插件(ie無效)
function hasPlugin(name) {
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;
}
// 檢測 flash
hasPlugin('Flash');
複製代碼
在ie中檢測插件可使用專有的ActiveXObject 類型,並建立一個特定的插件實例。ie中是以com對象的方式實現的插件的,而com對象使用惟一標識符來標識。所以,檢測插件必須知道其com標識符。如:java
// 檢測ie中插件
function hasIEPlugin(name) {
try {
new ActiveXObject(name);
return true;
} catch(e) {
return false;
}
}
// 檢測flash
hasIEPlugin('ShockwaveFlash.ShockwaveFlash')
複製代碼
上例中之因此用try...catch是由於建立未知com對象會致使拋出錯誤。這樣,若是實例化成功返回true,不然拋出錯誤,返回false。因爲兩種檢測方式差別比較大,因此針對每個插件分別建立檢測函數。如:數組
// 檢測全部瀏覽器flash
function hasFlash() {
var result = hasPlugin('Flash');
if (!result) {
result = hasIEPlugin('ShockwaveFlash.ShockwaveFlash')
}
return result;
}
// 檢測flash
hasFlash()
複製代碼
registerContentHandler() 有三個參數:要處理的mime類型、能夠處理該mime類型的頁面的url、應用程序的名字。如:瀏覽器
navigator.registerContentHandler('application/rss+xml', 'http://www.somereader.com?feed=%s', 'Some Reader');
複製代碼
registerProtocolHandler()有三個參數:要處理的協議、能夠處理該頁面的url、應用程序的名字。安全
navigator.registerProtocolHandler('mailto', 'http://www.somemailclient.com?cmd=%s', 'Some Mail Client')
複製代碼
若有侵權,請發郵箱至wk_daxiangmubu@163.com 或留言,本人會在第一時間與您聯繫,謝謝!! bash