2

我正在使用清单版本 3 进行 chrome 扩展我在后台 js 中遇到这个错误: 事件处理程序中的错误:ReferenceError: window is not defined chrome extension with manifest v3

"manifest_version":3, "permissions":["contextMenus","storage", "activeTab","tabs","scripting","webRequest"],

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

4

2 回答 2

2

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

于 2021-06-30T12:24:26.450 回答
0

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

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

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

ifwindow.history.back作为值提供functhen 显然它不会被后台脚本知道或可用,并且会出现相同的错误消息。

这已经在文档中进行了描述。

于 2021-08-28T20:20:35.440 回答