Google chrome extension 在Chrome扩展的onBeforeRequest中获取tabId-1

Google chrome extension 在Chrome扩展的onBeforeRequest中获取tabId-1,google-chrome-extension,Google Chrome Extension,在我的Chrome扩展中,我听了《onBeforeRequest》,其中有一个领域存在着一个谜团: 问题是:tabId==-1而不是侦听器中的有效选项卡id。也会出现type===xmlhttprequest,尽管这不是一个XHR请求: chrome.webRequest.onBeforeRequest.addListener() frameId: -1 initiator: "https://www.vinyl-digital.com" method: "GET" parentFrameId

在我的Chrome扩展中,我听了《onBeforeRequest》,其中有一个领域存在着一个谜团:

问题是:
tabId==-1
而不是侦听器中的有效选项卡id。也会出现
type===xmlhttprequest
,尽管这不是一个XHR请求:

chrome.webRequest.onBeforeRequest.addListener()

frameId: -1
initiator: "https://www.vinyl-digital.com"
method: "GET"
parentFrameId: -1
requestId: "586533"
tabId: -1
timeStamp: 1554487869165.11
type: "xmlhttprequest"
url: "https://www.vinyl-digital.com/"
我想知道一个可能的原因-1和如何开始获得有效的ID

为了复制它,我创建了一个新的Chrome配置文件,添加了我的扩展名,在URL中键入的新选项卡中,按Enter键。
tabId
第一次也是唯一一次是有效的(!)数字。所有其他时间我都得到-1和“xmlhttprequest”


Chrome 73.0.3683.86(官方版本)(64位)Win 7

在您第一次访问站点时安装一个服务人员(您可以在devtools->Application选项卡中看到),该服务人员处理后续请求,并从其上下文(不是选项卡)发出XHR,因此id为
-1
,如下所示:

tabId
:发生请求的选项卡的ID。
如果请求与选项卡无关,则设置为-1。


在您第一次访问该站点时,请安装一名服务人员,该服务人员将处理后续请求,并从其上下文(不是选项卡)发出XHR,因此根据webRequest文档,id为-1。@wOxxOm您的帮助一如既往地很有价值,谢谢!您添加答案后,我将接受您的答案。是否可以确定服务人员是从哪个站点/选项卡启动的?如果不知道请求的来源,就很难在onBeforeRequest中应用许多必需的算法。