You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript区分Chrome浏览器与Chromium浏览器?

问题

Chrome浏览器拥有扩展程序替代安装方法,但Chromium浏览器没有。我开发的产品包含网页扩展程序与本地主机应用,因此需要在安装后为用户展示不同的指引说明。该指引会在默认浏览器中打开,需通过页面内脚本为不同浏览器生成不同内容。

需求

我原本打算使用userAgent来区分Chrome与纯Chromium,但发现二者的userAgent和userAgentData似乎相同。请问是否有其他方法可以区分这两款浏览器?

更新

二者的userAgent和userAgentData相同。

上述说法并不成立…… =/


可以通过以下几种可靠方式区分Chrome和纯Chromium:

  • 调用Chrome专属API
    Chrome提供chrome.runtime.getBrowserInfo()这类独有的API,纯Chromium不支持。尝试调用该API,能成功返回数据则为Chrome,抛出异常则为Chromium。示例代码:

    async function isChrome() {
      try {
        await chrome.runtime.getBrowserInfo();
        return true;
      } catch (e) {
        return false;
      }
    }
    

    注:此方法需要在扩展上下文或允许访问chromeAPI的环境中使用,普通网页需搭配其他方案。

  • 解析User-Agent字符串
    多数情况下Chrome的UA会包含Google Chrome关键词,而纯Chromium仅显示Chromium。你之前提到二者UA相同,但实际场景中差异普遍存在,可通过正则匹配区分:

    function isChrome() {
      return /Google Chrome/.test(navigator.userAgent);
    }
    function isChromium() {
      return /Chromium/.test(navigator.userAgent) && !/Google Chrome/.test(navigator.userAgent);
    }
    
  • 检查userAgentData品牌标识
    Chrome的navigator.userAgentData.brands中会包含Google Chrome条目,纯Chromium则只有Chromium。通过遍历品牌列表即可判断:

    function isChrome() {
      return navigator.userAgentData?.brands.some(item => item.brand === "Google Chrome");
    }
    
  • 检测扩展商店相关特性
    Chrome默认关联官方扩展商店,纯Chromium通常无默认商店或使用开源商店。可尝试检测chrome.webstore相关API的可用性,但此方法可能受浏览器配置影响,需结合其他方式验证。

建议同时使用多种方法交叉验证,避免因自定义编译的Chromium版本修改标识导致误判。


内容的提问来源于stack exchange,提问作者Paul Kamp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:53:14