navigator.appName
是 JavaScript 中 navigator
对象的一个属性,用于返回浏览器的“名称”。
📌 语法:
let appName = navigator.appName;
console.log(appName);
🧪 实际返回值(常见浏览器):
浏览器 | navigator.appName 返回值 |
---|---|
Chrome | Netscape |
Firefox | Netscape |
Safari | Netscape |
Edge (Chromium) | Netscape |
IE 11 | Netscape (不是 Microsoft Internet Explorer ) |
🤯 为什么大多数返回 Netscape
?
因为 JavaScript 和 DOM 最初是由 Netscape Navigator 浏览器引入的,为了兼容旧网站,现代浏览器都保留了这个值为 "Netscape"
,即使实际不是。
✅ 示例:
if (navigator.appName === "Netscape") {
console.log("这可能是一个现代浏览器(Chrome、Firefox、Edge、Safari)");
}
⚠️ 注意事项:
navigator.appName
几乎没用,因它的值并不能准确区分浏览器。- 不推荐使用它进行浏览器检测,建议用
userAgent
或User-Agent Client Hints
替代。
🔄 替代方案:
用 navigator.userAgent
或正则来判断浏览器:
const ua = navigator.userAgent;
if (/Chrome/.test(ua) && !/Edge/.test(ua)) {
console.log("Chrome 浏览器");
} else if (/Firefox/.test(ua)) {
console.log("Firefox 浏览器");
} else if (/Safari/.test(ua) && !/Chrome/.test(ua)) {
console.log("Safari 浏览器");
}
如果你是做浏览器检测、兼容性判断,或者写爬虫防护/反检测,我可以帮你写更准确的判断逻辑。需要的话请告诉我用途。
发表回复