📜  浏览器检测 javascript (1)

📅  最后修改于: 2023-12-03 15:40:45.335000             🧑  作者: Mango

浏览器检测 Javascript

在编写 JS 代码时,我们经常需要检测当前运行代码的浏览器信息,以便针对不同的浏览器进行不同的处理。以下是常用的浏览器检测方法:

1. navigator.userAgent

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浏览器
}
2. document.all

document.all 是 IE 浏览器独有的属性,可用于判断是否为 IE 浏览器。

示例代码:

if (document.all) {
  // IE浏览器
} else {
  // 非IE浏览器
}
3. window.ActiveXObject

window.ActiveXObject 同样是 IE 浏览器独有的属性,用于判断是否支持 ActiveX 控件。

示例代码:

if (window.ActiveXObject || 'ActiveXObject' in window) {
  // 支持ActiveX控件的IE浏览器
} else {
  // 非IE或不支持ActiveX控件的IE浏览器
}
4. document.documentMode

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 或更低版本浏览器
  }
}
5. window.opera

window.opera 是 Opera 浏览器特有的属性,可用于判断是否为 Opera 浏览器。

示例代码:

if (window.opera) {
  // Opera浏览器
} else {
  // 非Opera浏览器
}
总结

以上就是常用的浏览器检测方法,根据不同的需求,选择不同的方法即可。但需要注意的是,浏览器检测并不是最优解,我们应该优先考虑能力检测或特性检测,避免在未来出现兼容性问题。