如何检测安装的Chrome版本?

发布于 2024-10-15 19:33:12 字数 61 浏览 5 评论 0原文

我正在开发一个 Chrome 扩展程序,我想知道是否有一种方法可以检测用户正在使用哪个版本的 Chrome?

I'm developing a Chrome extension and I'm wondering is there a way that I can detect which version of Chrome the user is using?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

三月梨花 2024-10-22 19:33:12

以整数形式获取 Chrome 的主要版本:

function getChromeVersion () {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);

    return raw ? parseInt(raw[2], 10) : false;
}

我已经更新了原始答案,以便它不会在其他浏览器中引发异常,并且不会使用已弃用的功能。

您还可以设置 清单中的minimum_chrome_version,不允许使用旧版本的用户安装它。

Get major version of Chrome as an integer:

function getChromeVersion () {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);

    return raw ? parseInt(raw[2], 10) : false;
}

I've updated the original answer, so that it does not throw an exception in other browsers, and does not use deprecated features.

You can also set minimum_chrome_version in the manifest to not let users with older versions install it.

梦里寻她 2024-10-22 19:33:12

这是一个基于 @serg 的答案的版本,它提取版本号的所有元素:

function getChromeVersion () {
    var pieces = navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/);
    if (pieces == null || pieces.length != 5) {
        return undefined;
    }
    pieces = pieces.map(piece => parseInt(piece, 10));
    return {
        major: pieces[1],
        minor: pieces[2],
        build: pieces[3],
        patch: pieces[4]
    };
}

返回的对象中元素的命名基于 约定,尽管您当然可以将其改编为基于 这个 代替。

Here is a version, based on the answer from @serg, that extracts all of the elements of the version number:

function getChromeVersion () {
    var pieces = navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/);
    if (pieces == null || pieces.length != 5) {
        return undefined;
    }
    pieces = pieces.map(piece => parseInt(piece, 10));
    return {
        major: pieces[1],
        minor: pieces[2],
        build: pieces[3],
        patch: pieces[4]
    };
}

The naming of the elements in the object that is returned is based on this convention, though you can of course adapt it to be based on this instead.

半枫 2024-10-22 19:33:12

替代的现代解决方案只需检查 navigator.userAgentData.brands

例如:

Boolean(navigator.userAgentData?.brands.find(({ brand, version }) => brand === 'Chromium' && parseFloat(version, 10) >= 93))

Alternative modern solution can be just check the navigator.userAgentData.brands

E.g.:

Boolean(navigator.userAgentData?.brands.find(({ brand, version }) => brand === 'Chromium' && parseFloat(version, 10) >= 93))
饭团 2024-10-22 19:33:12

要获取完整版本(不含 0.0.0),请使用以下命令:

if (navigator.userAgentData) {
  navigator.userAgentData.getHighEntropyValues(["fullVersionList"])
    .then(ua => {
      const chromeVersion = ua.fullVersionList.find(item => item.brand === "Google Chrome");
      if (chromeVersion) {
        console.log("Full Chrome version:", chromeVersion.version);
      } else {
        console.log("Chrome version not found");
      }
    })
    .catch(error => console.error("Error getting version:", error));
} else {
  console.log("User-Agent Client Hints not supported");
}

To get the full version (without 0.0.0) use this:

if (navigator.userAgentData) {
  navigator.userAgentData.getHighEntropyValues(["fullVersionList"])
    .then(ua => {
      const chromeVersion = ua.fullVersionList.find(item => item.brand === "Google Chrome");
      if (chromeVersion) {
        console.log("Full Chrome version:", chromeVersion.version);
      } else {
        console.log("Chrome version not found");
      }
    })
    .catch(error => console.error("Error getting version:", error));
} else {
  console.log("User-Agent Client Hints not supported");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文