我一直在摆弄一个非常简单的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倍(这会导致很多选项卡)。因此,我需要添加一些条件语句或类似的语句。