簡體   English   中英

Chrome擴展程序中的“關閉”標簽

[英]Closing Tab in Chrome Extension

我在popup.html中有一個函數,該函數創建一個選項卡,插入一個mailto來觸發本地(或gmail)郵件事件。 我希望它能夠自己關閉。 我已經嘗試了許多事情,但是似乎我需要做的事情等同於:

tabId = chrome.tabs.query(I DON'T KNOW!);
chrome.tabs.remove(tabId);

這是當前代碼:

var query = { active: true, currentWindow: true };
function callback(tabs) {
    var currentTab = tabs[0];
    console.log(currentTab);
}
chrome.tabs.remove(chrome.tabs.query(query, callback));

但它不起作用。

如果有用的話,這是我創建選項卡的方式(它可以按需工作):

    chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
        getTabs(tabs, function(full_mail_link){
          chrome.tabs.create({ url: full_mail_link });
        });
    });

任何幫助將不勝感激!

我不知道您的getTabs函數做什么。 但是,如果您知道如何查找選項卡的選項卡ID,那么您所需要做的就是

chrome.tabs.remove(tabId, optionalCallback);

這必須是工作:

chrome.tabs.getSelected(null, function(tab) {
 chrome.tabs.remove(tab.id);
 });

這應該工作:

//create the tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    getTabs(tabs, function(full_mail_link){
      chrome.tabs.create({ url: full_mail_link }, callBackOnCreate);
    });
});

function callBackOnCreate(tab)
{
     globalCreatedTab = tab.id;
}

chrome.tabs.query({'active': true}, function(tabs) {
      for (var i = 0; i < tabs.length; ++i)
      {
          if (tabs[i].id === globalCreatedTab)
          {
              chrome.tabs.remove(tabs[i].id, [optional callback]);
          }
      }

 });

解決方案:將查詢函數與回調一起使用,並在回調中執行remove函數。

看起來正常的window.openwindow.close()也應該起作用,tab-id是一個整數或包含整數的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM