#daiizメモ

Scrapboxに夢中

chrome拡張機能のpopup画面を閉じる方法

chrome拡張機能のpopup上のボタンを押したときに、何らかのページ(hoge.html)を開いてから自身(popup.html)を閉じる方法を調てみた。

<!-- popup.html -->
<button id="btn">hoge.htmlを開いてこの画面を閉じる</button>
/* popup.js */
document.getElementById("btn").addEventListener("click", func, false);

popupの閉じ方は、ページ(hoge.html)を開くときの方法によって異なることがわかった。

特に何もしなくても自動で閉じる方法

hoge.htmlを開くときに、window.open()を使用すればよい。
window.open()を使うと、hoge.htmlを開いた後のpopupを閉じる処理を書かなくても自動で閉じた。

function func() {
   window.open("hoge.html");
   // popupを閉じる処理は書かなくてよい
}

明示的に閉じる必要がある方法

hoge.htmlを開くときにchrome.tabs.create()を用いた場合は、popup画面を閉じるために、コールバック関数内でwindow.close()を実行する必要があった。

function func() {
   chrome.tabs.create({url: "hoge.html"}, function() {
       window.close();  // popupを閉じる処理
   });
}