chrome.tabs.onCreated.addListener(函数(tab))不起作用

时间:2018-02-23 21:51:40

标签: google-chrome-extension

我希望每次打开新标签时x都会增加。为什么它不起作用?

    var x = 0;
    function increase(){
        x++;
   }
    chrome.tabs.onCreated.addListener(function (tab) {
            increase();
    });

1 个答案:

答案 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);
});