我编写了嗅探 IE4 或更高版本的代码,目前在我公司客户的站点以及我自己的个人站点中运行良好。
将以下枚举常量和函数变量包含到页面上的 javascript 包含文件中...
//methods
var BrowserTypes = {
Unknown: 0,
FireFox: 1,
Chrome: 2,
Safari: 3,
IE: 4,
IE7: 5,
IE8: 6,
IE9: 7,
IE10: 8,
IE11: 8,
IE12: 8
};
var Browser = function () {
try {
//declares
var type;
var version;
var sVersion;
//process
switch (navigator.appName.toLowerCase()) {
case "microsoft internet explorer":
type = BrowserTypes.IE;
sVersion = navigator.appVersion.substring(navigator.appVersion.indexOf('MSIE') + 5, navigator.appVersion.length);
version = parseFloat(sVersion.split(";")[0]);
switch (parseInt(version)) {
case 7:
type = BrowserTypes.IE7;
break;
case 8:
type = BrowserTypes.IE8;
break;
case 9:
type = BrowserTypes.IE9;
break;
case 10:
type = BrowserTypes.IE10;
break;
case 11:
type = BrowserTypes.IE11;
break;
case 12:
type = BrowserTypes.IE12;
break;
}
break;
case "netscape":
if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { type = BrowserTypes.Chrome; }
else { if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { type = BrowserTypes.FireFox } };
break;
default:
type = BrowserTypes.Unknown;
break;
}
//returns
return type;
} catch (ex) {
}
};
然后您所要做的就是使用任何条件功能,例如...
IE。 value = (Browser() >= BrowserTypes.IE) ? node.text : node.textContent;
或者 WindowWidth = (((Browser() >= BrowserTypes.IE9) || (Browser() < BrowserTypes.IE)) ? window.innerWidth : document.documentElement.clientWidth);
或者 sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent;
明白了吗?希望这可以帮助。
哦,你可能要记住在IE10发布后对Browser()函数进行QA,只是为了验证他们没有改变规则。