Javascript,Chrome扩展程序开发,关闭弹出窗口

时间:2011-07-15 13:48:29

标签: javascript tabs popup google-chrome-extension

在我的清单中我有这个:

"popup": "1_options.html"

在上面的html文件中我有这段代码

  var saved_email = localStorage['saved_email'];
  if (saved_email !== undefined ||  saved_email != "a@a.com") 
  {
      chrome.tabs.create({url: '0_register.html'});
  }

这正是我想要的,它打开一个带有register.html的新标签但是它仍然在右上方打开了弹出窗口:((1_options.html)

无论如何,当我打开这个新标签时,是否会自动关闭弹出窗口?

谢谢! 莱恩

3 个答案:

答案 0 :(得分:2)

你试过了吗?

self.close();

答案 1 :(得分:2)

有几种方法可以做到这一点,但最简单的方法是打电话:

window.close();

您甚至可以在创建标签时在回调函数中执行此操作...

chrome.tabs.create({url: '0_register.html'}, function() {
  window.close();
});

您还可以在后台脚本中添加侦听器以检查选项卡更新,如果新选项卡是注册窗口,则可以删除弹出窗口:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  if(changeInfo.status == "loading") {
      if(tab.url == "chrome-extension://[extension-id]/0_register.html") {
          chrome.tabs.remove(tabId);
      }
  }
});

答案 2 :(得分:1)

      chrome.tabs.create({url: '0_register.html', selected: true});

如果你不介意在创建新标签时选择它,这也会强制弹出窗口关闭。