Google chrome extension chrome.tabs.onCreated.addListener(函数(选项卡))不是';行不通
我希望每次打开一个新选项卡时x都增加。为什么不起作用Google chrome extension chrome.tabs.onCreated.addListener(函数(选项卡))不是';行不通,google-chrome-extension,Google Chrome Extension,我希望每次打开一个新选项卡时x都增加。为什么不起作用 var x = 0; function increase(){ x++; } chrome.tabs.onCreated.addListener(function (tab) { increase(); }); 您的问题是,选项卡api不能在内容脚本中使用(请查看文档,了解哪些可以和哪些不能) 为了实现您的目标,您需要将制表符计数代码放在后台脚本中。如果需要访问内
var x = 0;
function increase(){
x++;
}
chrome.tabs.onCreated.addListener(function (tab) {
increase();
});
您的问题是,
选项卡
api不能在内容脚本中使用(请查看文档,了解哪些可以和哪些不能)
为了实现您的目标,您需要将制表符计数代码放在后台脚本中。如果需要访问内容脚本中的变量x
,则必须使用在后台和内容脚本之间传递数据
例如,每当打开新选项卡时,您可以将背景脚本设置为增加x
,然后每当内容脚本需要此值时,它可以向背景脚本请求:
Background.js:
var x = 0;
function increase(){
x++;
}
chrome.tabs.onCreated.addListener(function (tab) {
increase();
});
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.action == "tabCount")
sendResponse({count: x});
});
Content-Script.js:
chrome.runtime.sendMessage({action: "tabCount"}, function(response) {
console.log(response.count);
});
只是检查您是否已将“选项卡”权限添加到manifest.json文件中?如果您在Listener中添加了
console.log(“测试”)
或其他内容,是否会在控制台中打印?我确实拥有tabs权限。我如何检查它是否已打印?您使用的是chrome还是firefox,这段代码也是背景脚本还是内容脚本?我使用的是chrome,它是内容脚本谢谢您的帮助!!!但是,当我使用诸如chrome.tabs.onUpdated.addListener(函数(tab))之类的侦听器时,它会起作用但不适用于chrome.tabs.onCreated.addListener。对于未更新的侦听器,是否有任何特定的内容?这很有趣,因为根据google文档,内容脚本中应该禁止使用tabs api。可能有一个例外,即允许在内容脚本中触发未更新事件,以更新与该选项卡相关的内容帐篷脚本与关联,但这只是推测。消息传递不起作用,变量只是在后台和内容之间立即传递,没有消息传递