首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript关闭firefox-addon中具有特定元标记的选项卡

使用javascript关闭firefox-addon中具有特定元标记的选项卡
EN

Stack Overflow用户
提问于 2015-06-21 20:44:23
回答 1查看 84关注 0票数 2

我有这样的评论,它在页面opens.Towards的末尾插入了下面的"meta“标签,我想用页面头上的标签关闭所有的标签。

代码语言:javascript
复制
<meta id="CLOSE_LATER">

我写了一个简单的for-循环:

代码语言:javascript
复制
var TAG = "CLOSE_LATER";
var tabs = require("sdk/tabs");

for(var i=0; i<tabs.length; i++){
    var tab = tabs[i];

        console.log("****START****");
        console.log("CLOSING TAB : "+i+"of : "+tabs.length);
    searchTag(tab, TAG,i)
    .then(function success(rValue) {
        if (rValue) {
            tab.close();
            console.log("CLOSED i: "+i);                
        }
        else{
            console.log("NOT CLOSED i: "+i);
        }
    }, function failure(error) {
        console.log("Error : searchTag()");
    });
    console.log("****END****");     
}

其中searchTag()将脚本附加到页面"seachtag.js“以搜索标记。

searchTag()返回一个已解析为TRUE的承诺,即它在页面上找到标记,否则解析为FALSE。

示例情况:我有3个URL,其中只有URL-2和URL-3在他们的头上有标签。因此,只有URL-2和3应该关闭,但只有URL-3关闭.

下面是示例日志:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 07:31:08

试试这个:

代码语言:javascript
复制
var TAG = "CLOSE_LATER";
var tabs = require("sdk/tabs");

var success = function (rValue) {
    if (rValue) {
        this.close();
        //console.log("CLOSED i: "+i);                
    }
    else{
        //console.log("NOT CLOSED i: "+i);
    }
};

for(var i=0; i<tabs.length; i++){
    var tab = tabs[i];

        console.log("****START****");
        console.log("CLOSING TAB : "+i+"of : "+tabs.length);
    searchTag(tab, TAG,i)
    .then(success.bind(tab), function failure(error) {
        console.log("Error : searchTag()");
    });
    console.log("****END****");     
}

它将您感兴趣的tab绑定到success函数中的this变量,这样每次对success的调用都将有正确的tab对象来处理。

请注意,我注释掉了日志记录,因为您不再能够访问i,但是如果您希望再次工作,您只需为每个循环迭代将tabi封装在一个新对象中,然后将其绑定。

我以前没有在承诺中使用过这个技巧,所以承诺解析可能会做一些事情来打破绑定,但希望不会。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30969151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档