我在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 });
});
});
任何帮助将不胜感激!
答案 0 :(得分:6)
我不知道你的getTabs功能是做什么的。但是,如果您知道如何找到所需标签的标签ID,那么您需要做的就是
chrome.tabs.remove(tabId, optionalCallback);
答案 1 :(得分:1)
这一定是有效的:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.remove(tab.id);
});
答案 2 :(得分:-1)
这应该有效:
//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是一个整数或包含整数的数组。