我正在爲Google Chrome編寫擴展程序。從谷歌瀏覽器擴展中關閉兩個連續的選項卡
當在目標站點上打開搜索頁面時,會注入一個內容腳本,它向後臺頁面發送請求以打開新選項卡中的detailPage。當detailPage打開時,將注入一個內容腳本,它向後臺頁面發送請求以在新選項卡中打開messagePage。當messagePage打開時,會注入一個內容腳本,用於發送消息並關閉messagePage選項卡。到現在爲止還挺好。焦點返回到detailPage選項卡。
但是如何關閉detailPage? messagePage中的腳本消失了。 detailPage中的腳本處於空閒狀態。我想背景必須關閉detailPage選項卡和messagePage選項卡。我試過兩個連續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