navigator.appName 是 JavaScript 中 navigator 对象的一个属性,用于返回浏览器的“名称”。


📌 语法:

let appName = navigator.appName;
console.log(appName);

🧪 实际返回值(常见浏览器):

浏览器navigator.appName 返回值
ChromeNetscape
FirefoxNetscape
SafariNetscape
Edge (Chromium)Netscape
IE 11Netscape(不是 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 浏览器");
}

如果你是做浏览器检测、兼容性判断,或者写爬虫防护/反检测,我可以帮你写更准确的判断逻辑。需要的话请告诉我用途。