【问题标题】:How to find the version of Chrome browser from my extension?如何从我的扩展程序中找到 Chrome 浏览器的版本?
【发布时间】:2016-10-11 00:58:07
【问题描述】:

我知道我可以添加

minimum_chrome_version 属性添加到我的清单文件以至少需要此版本的 chrome

但我正在寻找的是允许在任何 chrome 版本上安装我的扩展程序 但然后从背景页面或从我的选项页面检查版本 chrome 浏览器版本并基于启用或禁用某些功能 我的扩展依赖于某些最低版本。

令人惊讶的是,我无法找到一种方法来做到这一点,即使谷歌搜索也没有帮助。

有谁知道如何检查运行我的扩展程序的客户端 chrome 浏览器的版本?

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    您可以从用户代理字符串中提取获取当前的 Chrome 版本:

    var chromeVersion = /Chrome\/([0-9.]+)/.exec(navigator.userAgent)[1];
    

    当使用它来“检测”功能时,请注意某些功能的可用性在 channels 之间会有所不同。特别是,许多新功能已经在 beta 频道上可用,但在稳定版频道上不可用,即使两个频道上的版本具有相同的版本字符串。您可以检测 API 的存在,而不是使用版本来禁用功能,例如:

    if (chrome.declarativeWebRequest) {
        // Use declarativeWebRequest API...
    } else {
        // fall back to webRequest API...
    }
    

    【讨论】:

    • 这听起来像是一种提取 chrome 版本的 hacky 方法。我的意思是 chrome api 应该提供一种获取实际版本的方法,而不是 useragent 报告的使用情况。我不确定用户代理是否可以被用户欺骗。
    • @Dmitri 用户代理可以通过开发者工具暂时被欺骗。这需要用户 1. 打开后台页面的开发者工具。 2. 点击右下角的齿轮图标。 3. 在 Overrides 选项卡中选择一个自定义用户代理。用户代理将被覆盖,直到开发人员工具关闭。由于这些步骤需要大量的关注和努力,并且更改此值不符合用户的利益,因此您可以假设用户代理在从 Chrome 扩展程序的背景页面读取时是坚如磐石的。
    • 根据 Chrome 扩展团队的说法,这是正确的答案。
    • 如果用户配置了用户代理(例如使用 [user agent switcher](chrome.google.com/webstore/detail/user-agent-switcher/….),它将因超出范围而中断。@ubuntugx 下面的答案更好。
    【解决方案2】:

    来自fastClick

    var chromeVersion=(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多