JS判断浏览器是否是IE或者Edge
时间: 2024-12-25 16:36:35 浏览: 6
JavaScript 中可以使用一些条件检查来判断浏览器是否为 Internet Explorer (IE) 或者 Edge。由于 Microsoft 对于浏览器标识符的变化,以下是一些推荐的检测方法:
1. **检测 IE 版本** (针对早期版本):
```javascript
// 检查 Trident 浏览器内核(IE 使用)
if (!!window.MSInputMethodContext && !!document.documentMode) {
console.log("当前浏览器是 IE");
}
```
2. **检测 Edge 特有的 navigator.userAgent 字段** (针对 Edge 和兼容模式):
```javascript
// Edge 浏览器有 'Edge/' 前缀
if (!!(navigator.userAgent.indexOf('Edge/') || navigator.userAgent.indexOf('Trident/')) && !navigator.userAgent.toLowerCase().includes('chrome')) {
console.log("当前浏览器可能是 Edge");
}
```
3. **检测 Edge 具体版本** (需要 polyfill,因为原生方法存在兼容性问题):
```javascript
// 使用 Modernizr 等库提供的 isEdge 方法,或者第三方库如 @esri/is-ie 来检测 Edge 版本
const isEdge = () => /edge/i.test(navigator.userAgent);
if (isEdge()) {
console.log("当前浏览器是 Edge");
}
```
4. **检测兼容模式** (IE11 使用 Edge 模式):
```javascript
// 如果是 IE11 的 Edge 模式,会有 'EdgHTML' 或 'Application' 标志
if (typeof window.Edge !== "undefined" && window.StyleMedia) {
console.log("当前浏览器可能是 IE11 with Edge mode");
}
```
请注意,浏览器标识检测可能会随着新版本发布而变化,因此使用上述代码时应保持更新。同时,为了获得最佳用户体验和避免过早优化,现代开发者通常会建议直接忽略对特定旧版浏览器的支持。
阅读全文