当用户在单独的镀铬窗口上时,有没有办法关闭chrome扩展弹出窗口?

时间:2015-05-06 22:46:02

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

我试图开始工作的场景是:

如果用户在Chrome窗口1上打开了扩展程序弹出窗口,并且未关闭弹出窗口,则用户打开另一个Chrome窗口(窗口2)并开始使用它的那一刻,我希望窗口1上的弹出窗口关闭。

基本上,只有活动的Chrome窗口才能打开扩展程序弹出窗口。

1 个答案:

答案 0 :(得分:3)

嗯。我不知道弹出窗口是这样工作的!

但是,是的,这是可能的。您可以使用chrome.extension.getViews() function访问所有弹出窗口并关闭其他弹出窗口。

因此,在弹出代码的开头,执行以下命令:

chrome.extension.getViews({type: "popup"}).forEach(function(win) {
  if(win != window) win.close(); 
});

这是一个相当古老的API(你可以告诉它,因为它是同步的),但仍然有效。