Chrome扩展程序通知–循环还是有条件的解决方案?

时间:2018-09-19 09:11:26

标签: javascript jquery google-chrome-extension unique-id

我一直在摆弄一个非常简单的Chrome扩展程序通知程序,当新的帖子出现在特定的RSS Feed中时,该通知程序就会触发。现在,我希望能够挑选出以前的帖子,这样就不会重复触发相同的通知。

基本上,我想做的是创建一个循环或if语句,该语句可以识别是否将同一条帖子作为通知发送出去。

$.get('rssfeed', function(data) {
    var $xml = $(data);
    $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                title: $this.find("title").text(),
                link: $this.find("link").text(),
                description: $this.find("description").text(),
                pubDate: $this.find("pubDate").text(),
                guid: $this.find("guid").text()

        }

        latestID = item.guid.slice(-8);
        var jobTitle = item.title.slice(0, 10);
        var jobType = item.title.slice(-46, -16);

        console.log(latestID);
        console.log(jobType);

        var notification = {
            type: "basic",
            title: jobTitle.replace(/[()]/g,"") + " " + latestID,
            iconUrl: "icon48.png",
            message: jobType.replace("x", "y"),
            requireInteraction: true,
            buttons: [{
                    title: "Go to site!"
                }],
        };

        //rule out if repeated new ID is the same as last ID
        /*
        ids[0] = latestID;
        console.log("ID 0 : " + ids[0]);
        console.log("IDS.LENGTH : " + ids.length);

        } else if (latestID != ids[0]) {

            chrome.notifications.create(notification);

        }
        */

        chrome.notifications.onButtonClicked.addListener(function () {
            window.open(item.link);

        });

        if (notification.title.includes("term")) {
            console.log("contains 'term' – rejected")
            //return;
        } else {
            chrome.notifications.create(notification);
        }


    });
});

};

一个相关的问题是,到目前为止,单击通知按钮将打开x个选项卡,其数量等于触发通知的x倍(这会导致很多选项卡)。因此,我需要添加一些条件语句或类似的语句。

0 个答案:

没有答案