gpt4 book ai didi

google-chrome-extension - 在 ManifestV3 Service Worker 后台脚本中使用 `window` 全局变量

转载 作者:行者123 更新时间:2023-12-03 08:02:09 30 4
gpt4 key购买 nike

我正在开发一个 Manifest v3 浏览器扩展,我需要从后台脚本识别当前正在运行该扩展的浏览器。由于 ManifestV3 扩展使用服务工作线程,因此它没有 DOM 或窗口。所以我无法使用 window.navigator.userAgent

我找到了related question其中讲了如何获取窗口高度和宽度信息,但我找不到任何其他信息来获取浏览器的userAgent。

这可能吗?

最佳答案

中性全局变量

navigator这样的东西并不特定于窗口的视觉表示。
只需省略window.并直接读取:

  • 导航器
  • navigator.userAgent
  • atob
  • 获取

特定于窗口的全局变量

特定于用户交互或视觉/听觉表示(例如 DOM 或 AudioContext)的内容,或者可能显示用户权限提示的内容。

不适用于工作人员。

窗口的别名

为了代码清晰或者局部变量被命名为全局属性,请使用它们而不是窗口

  • 内置 globalThis(Chrome/ium 71+、FF 65+)和 self

    这些是全局范围内与工作程序兼容的别名。请注意,您正在加载的 JS 库理论上可能会重新定义它们,但这确实很奇怪和不正常。

  • 自制全局

    最可靠的方法,但您必须仅在 IIFE 内部而不是全局添加 'use strict'
    webpack 等捆绑程序已经提供了此功能。
    以下是您可以自行复制的方法:

    const global = (function(){
    if (!this) throw "Don't add 'use strict' globally, use it inside IIFE/functions";
    return this;
    })();

关于google-chrome-extension - 在 ManifestV3 Service Worker 后台脚本中使用 `window` 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73778202/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com