Javascript、Chrome扩展开发、关闭弹出窗口

Javascript、Chrome扩展开发、关闭弹出窗口,javascript,tabs,popup,google-chrome-extension,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'}); } 这正是我想要的,它打开了一个带有regi

在我的舱单中,我有:

"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)

当我打开这个新标签页时,是否有自动关闭弹出窗口的方法

谢谢! Ryan

您是否尝试过:

self.close();
您是否尝试过:

self.close();

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

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

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

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);
      }
  }
});
如果您不介意在创建新选项卡时选择它,这也会强制关闭弹出窗口


如果您不介意在创建新选项卡时选择它,这也会迫使弹出窗口关闭。

我不确定这是否是答案,但会
chrome.browserAction.setPopup(“”)
work?它对我来说是关闭的。请注意,它只有在您没有打开开发人员工具时才会关闭。您是否关闭了它?我不确定这是否是答案,但会
chrome.browserAction.setPopup(“”)
work?它确实会为我关闭。请注意,它只有在您没有打开开发人员工具时才会关闭。您是否关闭了它?哎呀,您在我选择另一个答案时写道:)介意告诉我如何从后台脚本关闭另一个窗口(弹出窗口)吗?(我已经有了一个选项卡侦听器来捕获地址)@Ryan第二种方法可能是最精确的,但至少这会给你很多选择。哎呀,你在我选择另一个答案时写道:)介意告诉我如何从背景脚本关闭另一个窗口(弹出窗口)吗?(我已经有了一个选项卡侦听器来捕获地址)@Ryan第二种方法可能是最精确的,但至少这会给你很多选择。谢谢,我也会尝试的!(投票赞成)谢谢,我也会试试的!(投票赞成)