Error in event handler: ReferenceError: window is not defined chrome extension with manifest v3

Error in event handler: ReferenceError: window is not defined chrome extension with manifest v3

我正在为 chrome 扩展使用清单版本 3 这个我在后台 js 中遇到的错误: 事件处理程序中的错误:ReferenceError:window 未定义 chrome 带有清单 v3 的扩展

"manifest_version":3, “权限”:[“contextMenus”,“存储”,“activeTab”,“选项卡”,“脚本”,“webRequest”],

<code>var posLeft = ( window.width - winWidth ) / 2 ;

ManifestV3 扩展使用服务工作者,因此它没有 DOM 或 window

对于可能在类似上下文中查找该错误消息的其他人来说,我在忽略使 window 对象在运行时而不是在注入函数时可访问时遇到了同样的错误v3 后台脚本动态准备注入特定选项卡。

为了从 v3 后台脚本动态注入,选项卡特定对象(在本例中 window)需要包含在传递的函数中,如以下匿名函数案例所示:

chrome.scripting.executeScript({
    target: { tabId: currentTab.id },
    func: () => window.history.back()
  }); 

如果 window.history.back 被提供为 func 的值,那么显然后台脚本将不知道或不可用它,并且将出现相同的错误消息。

这确实在文档中有所描述。