[英]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.open
和window.close()
也應該起作用,tab-id是一個整數或包含整數的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.