9.3 用戶代理檢測 233
1
2
3
4
5
13
6
7
8
9
10
11
12
//呈現(xiàn)引擎
ie: 0,
gecko: 0,
webkit: 0,
khtml: 0,
opera: 0,
//具體的版本
ver: null
};
var browser = {
//瀏覽器
ie: 0,
firefox: 0,
safari: 0,
konq: 0,
opera: 0,
chrome: 0,
//具體的版本
ver: null
};
//在此檢測呈現(xiàn)引擎、平臺和設(shè)備
return {
engine: engine,
browser: browser
};
}();
代碼中又添加了私有變量 browser,用于保存每個主要瀏覽器的屬性。與 engine 變量一樣,除
了當前使用的瀏覽器,其他屬性的值將保持為 0;如果是當前使用的瀏覽器,則這個屬性中保存的是浮
點數(shù)值形式的版本號。同樣,ver 屬性中在必要時將會包含字符串形式的瀏覽器完整版本號。由于大
多數(shù)瀏覽器與其呈現(xiàn)引擎密切相關(guān),所以下面示例中檢測瀏覽器的代碼與檢測呈現(xiàn)引擎的代碼是混合
在一起的。
//檢測呈現(xiàn)引擎及瀏覽器
var ua = navigator.userAgent;
if (window.opera){
engine.ver = browser.ver = window.opera.version();
engine.opera = browser.opera = parseFloat(engine.ver);
} else if (/AppleWebKit\\/(\\S+)/.test(ua)){
engine.ver = RegExp[\"$1\"];
engine.webkit = parseFloat(engine.ver);
//確定是 Chrome 還是 Safari
if (/Chrome\\/(\\S+)/.test(ua)){
browser.ver = RegExp[\"$1\"];
browser.chrome = parseFloat(browser.ver);
} else if (/Version\\/(\\S+)/.test(ua)){
browser.ver = RegExp[\"$1\"];
browser.safari = parseFloat(browser.ver);
} else {
//近似地確定版本號
var safariVersion = 1;
圖靈社區(qū)會員 StinkBC(StinkBC@gmail.com) 專享 尊重版權(quán)