在前端开发中,有时需要根据不同的浏览器来执行特定的代码逻辑。判断是否为 Edge 浏览器可以通过检查用户代理字符串(User-Agent)来实现。以下是几种常见的方法:
navigator.userAgent
判断function isEdgeBrowser() {
const userAgent = navigator.userAgent;
return userAgent.includes('Edg/') || userAgent.includes('Edge/');
}
if (isEdgeBrowser()) {
console.log('当前浏览器是 Edge');
} else {
console.log('当前浏览器不是 Edge');
}
说明:
navigator.userAgent
返回浏览器的用户代理字符串,包含了浏览器类型、版本等信息。'Edg/'
(较新版本)或 'Edge/'
(旧版本)。function isEdgeBrowser() {
const userAgent = navigator.userAgent;
const edgeRegex = /Edg\/([\d.]+)/;
return edgeRegex.test(userAgent);
}
if (isEdgeBrowser()) {
console.log('当前浏览器是 Edge');
} else {
console.log('当前浏览器不是 Edge');
}
说明:
Edg\/([\d.]+)
正则表达式会匹配 'Edg/'
后跟随的版本号。虽然用户代理字符串是最直接的方法,但有时可能会被修改或伪装。因此,结合特征检测可以提高准确性。例如,Edge 浏览器支持某些特定的 API:
function isEdgeBrowser() {
return !!window.Edge && !!window.EdgeHTML; // 适用于旧版 Edge
// 或者
return 'CSS' in window && typeof CSS.supports === 'function'; // Edge 特有特性
}
if (isEdgeBrowser()) {
console.log('当前浏览器是 Edge');
} else {
console.log('当前浏览器不是 Edge');
}
说明:
window.Edge
和 window.EdgeHTML
是旧版 Edge 浏览器的特定对象。CSS.supports
是 Edge 浏览器支持的一个 CSS 特性检测方法。@supports
CSS 规则或 JavaScript 的 feature detection
库(如 Modernizr)来检测特定功能的支持情况。通过以上方法,可以有效地判断当前浏览器是否为 Edge,并根据需要进行相应的处理。
领取专属 10元无门槛券
手把手带您无忧上云