Google Chromeの拡張機能を書いています。Google Chromeの拡張子から2つの連続するタブを閉じる
ターゲットサイトで検索ページを開くと、新しいタブでdetailPageを開くためにバックグラウンドページにリクエストを送信するコンテンツスクリプトが挿入されます。 detailPageが開かれると、コンテンツ・スクリプトが挿入され、バックグラウンド・ページに要求を送信して新しいタブでmessagePageを開きます。 messagePageを開くと、メッセージを送信してmessagePageタブを閉じるコンテンツスクリプトが挿入されます。ここまでは順調ですね。フォーカスはdetailPageタブに戻されます。
どのようにdetailPageを閉じるには? messagePageにあったスクリプトはなくなりました。 detailPage内のスクリプトはアイドルです。私は背景がdetailPageタブとmessagePageタブの両方を閉じる必要があると思います。私は2つの連続したchrome.tabs.removeコマンドを試してみましたが、このコードは、単にハング:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.cmd == "closeMessage") {
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.remove(tab.id);
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.remove(tab.id);
});
}
});
これが「closeMessage」CMDを受信したときにアクションの一部である必要があります私には思えます。しかしどうですか?もしそうでなければ、どうですか?
私は、送信者のtab.idがsender.tab.idとして返されることを理解しています。これにアクセスしてそれを使ってdetailPageを閉じることはできませんか?
タブの隅にある小さなXを押すようにメッセージをポップアップします。 – Mattis