📅  最后修改于: 2023-12-03 15:40:45.335000             🧑  作者: Mango
在编写 JS 代码时,我们经常需要检测当前运行代码的浏览器信息,以便针对不同的浏览器进行不同的处理。以下是常用的浏览器检测方法:
navigator.userAgent
是一个包含浏览器厂商和版本信息的字符串,我们可以借此来检测所在的浏览器。
示例代码:
const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('chrome') !== -1) {
// Chrome浏览器
} else if (userAgent.indexOf('firefox') !== -1) {
// Firefox浏览器
} else if (userAgent.indexOf('safari') !== -1) {
// Safari浏览器
} else if (userAgent.indexOf('edge') !== -1) {
// Edge浏览器
} else if (userAgent.indexOf('ie') !== -1) {
// IE浏览器
}
document.all
是 IE 浏览器独有的属性,可用于判断是否为 IE 浏览器。
示例代码:
if (document.all) {
// IE浏览器
} else {
// 非IE浏览器
}
window.ActiveXObject
同样是 IE 浏览器独有的属性,用于判断是否支持 ActiveX 控件。
示例代码:
if (window.ActiveXObject || 'ActiveXObject' in window) {
// 支持ActiveX控件的IE浏览器
} else {
// 非IE或不支持ActiveX控件的IE浏览器
}
document.documentMode
是 IE 浏览器特有的属性,用于判断浏览器渲染模式。
示例代码:
const isIE = !!window.ActiveXObject || 'ActiveXObject' in window;
if (isIE) {
const documentMode = document.documentMode;
if (documentMode === 7) {
// IE7 浏览器
} else if (documentMode === 8) {
// IE8 浏览器
} else if (documentMode === 9) {
// IE9 浏览器
} else if (documentMode === 10) {
// IE10 浏览器
} else if (documentMode === 11) {
// IE11 浏览器
} else {
// IE6 或更低版本浏览器
}
}
window.opera
是 Opera 浏览器特有的属性,可用于判断是否为 Opera 浏览器。
示例代码:
if (window.opera) {
// Opera浏览器
} else {
// 非Opera浏览器
}
以上就是常用的浏览器检测方法,根据不同的需求,选择不同的方法即可。但需要注意的是,浏览器检测并不是最优解,我们应该优先考虑能力检测或特性检测,避免在未来出现兼容性问题。