Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展:如何在运行它的内容脚本中获取tabId_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展:如何在运行它的内容脚本中获取tabId

Javascript Chrome扩展:如何在运行它的内容脚本中获取tabId,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在制作一个chrome扩展,在这里我想将选项卡ID从内容脚本传递到background.js。我正在使用chrome.runtime.sendMessage与background.js通信,但既不知道background.js内部查询的tabId,也不知道执行内容脚本的tabId。请帮助我检索正在执行内容脚本的tabId PS:如果你在内容脚本和background.js之间有更好的沟通方式,请提出建议。但是不要建议使用port()方法,因为它在回调中断开连接(例如单击事件侦听器)请参阅文档

我正在制作一个chrome扩展,在这里我想将选项卡ID从内容脚本传递到background.js。我正在使用chrome.runtime.sendMessage与background.js通信,但既不知道background.js内部查询的tabId,也不知道执行内容脚本的tabId。请帮助我检索正在执行内容脚本的tabId


PS:如果你在内容脚本和background.js之间有更好的沟通方式,请提出建议。但是不要建议使用port()方法,因为它在回调中断开连接(例如单击事件侦听器)

请参阅文档并在后台页面中使用的
sender.tab.id
参数。然后,您可以将此id发送回内容脚本。不知道为什么,但我只得到
id
,它是扩展id和
url
,仅在发送者对象中,而不是任何类似选项卡的内容。你能告诉我我是否缺少任何权限或其他信息吗?这意味着你没有从内容脚本发送消息,内容脚本总是有一个
选项卡
对象:(除非内容脚本在web iframe中运行,而web iframe位于无选项卡页面(如背景/弹出窗口)中).popup.html文件中包含的popup.js是否被视为内容脚本?您可以使用google或类似的搜索引擎轻松找到示例,简而言之,它是chrome.tabs.query({active:true,currentWindow:true},yourcallback)