Javascript 关闭Chrome扩展中的选项卡
我有一个在popup.html中调用的函数,它创建一个选项卡,插入一个mailto来触发本地(或gmail)邮件事件。我希望它能自己关闭。我已经尝试了很多方法,但似乎我需要一些类似于:Javascript 关闭Chrome扩展中的选项卡,javascript,google-chrome-extension,tabs,Javascript,Google Chrome Extension,Tabs,我有一个在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) {
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));
但它不起作用
如果有用的话,下面是我如何创建选项卡(它可以根据需要工作):
任何帮助都将不胜感激 这应该有效:
//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]);
}
}
});
//创建选项卡
chrome.tabs.query({active:true,currentWindow:true},函数(tabs){
getTabs(选项卡、函数(完整邮件链接){
create({url:full\u mail\u link},callBackOnCreate);
});
});
函数callBackOnCreate(选项卡)
{
globalCreatedTab=tab.id;
}
chrome.tabs.query({'active':true},函数(tabs){
对于(变量i=0;i
解决方案:将查询函数与回调一起使用,并在回调中执行remove函数
它看起来像正常的窗口。open
和窗口。close()
也应该可以工作,
选项卡id是整数或包含整数的数组 我不知道你的getTabs函数是做什么的。然而,如果你知道如何找到你想要的标签的标签id,你需要做的就是
chrome.tabs.remove(tabId, optionalCallback);
这项工作必须:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.remove(tab.id);
});
谢谢,但根据google的说法,getSelected已被弃用,我们现在应该使用query…为什么要在active tabs数组中选择第一个?(提示:这是一个提示您的代码不健壮)我的意思是,如果打开多个窗口,您的代码将异常工作。OP现在想知道为什么他的代码不工作。删除代码需要在查询回调中。如果您想要ID为的选项卡数组。当然,您可以执行其他编码来检查选项卡是否是您创建的选项卡。将更新。@Mouser谢谢-很抱歉打扰您,但是您有循环数组如何工作的示例吗?Close iself=关闭弹出窗口?关闭您打开的选项卡?两者都有?谢谢-问题是我一开始就不知道如何得到tabId。。。当前的任何提示:`chrome.tabs.query({currentWindow:true,active:true},函数(tabs){tabId=tabs[0].id//tabs是一个tabs数组})
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.remove(tab.id);
});