我希望每次打开新标签时x都会增加。为什么它不起作用?
var x = 0;
function increase(){
x++;
}
chrome.tabs.onCreated.addListener(function (tab) {
increase();
});
答案 0 :(得分:0)
您的问题是tabs
api无法在内容脚本中使用(请查看文档here了解可以和不可以的内容。)
为了实现您的尝试,您需要将标签计数代码放在后台脚本中。如果您需要访问内容脚本中的变量x
,则必须使用message passing在后台和内容脚本之间传递数据。
例如,您可以设置后台脚本,以便在打开新标签时增加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});
});
内容的script.js:
chrome.runtime.sendMessage({action: "tabCount"}, function(response) {
console.log(response.count);
});