创建选项卡后Chrome扩展程序回调函数不起作用

时间:2018-10-29 03:13:15

标签: javascript google-chrome google-chrome-extension

我创建了标签,然后无法使用回调函数

   document.getElementById("login").addEventListener('click', function(){
    chrome.tabs.query({}, function(tabs){
      chrome.tabs.query({active: true,currentWindow: true}, function (tabs) {
        chrome.tabs.create({url: url_homepage, active: true}, function (tabs){
          alert('abc');
        });
      });
    });
  });

但是它不起作用,我尝试像这样使用chrome.tabs.onUpdated.addListener

  document.getElementById("login").addEventListener('click', function(){
chrome.tabs.query({}, function(tabs){
  chrome.tabs.query({active: true,currentWindow: true}, function (tabs) {
    chrome.tabs.create({url: url_homepage, active: true}, function (tabs){
      chrome.tabs.onUpdated.addListener(function listenEvent(tabid,info,tab){
        if(info.status == "complete" && tab.url.indexOf(url_homepage) != -1 ){
          alert('abc');
        }
      });
    });
  });
});

但是它仍然无法正常工作 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

在创建新标签时,只需active: false,就可以了。当您要关注新创建的标签时,请使用active: true

此外,在创建新标签页时,您实际上不需要查询标签页。

更改此代码:

document.getElementById("login").addEventListener('click', function(){
    chrome.tabs.query({}, function(tabs){
      chrome.tabs.query({active: true,currentWindow: true}, function (tabs) {
        chrome.tabs.create({url: url_homepage, active: true}, function (tabs){
          alert('abc');
        });
      });
    });
  });

对此也应该起作用。

document.getElementById("login").addEventListener('click', function(){
    chrome.tabs.create({url: url_homepage, active: false}, function (tabs){
      alert('abc');
    });
});