Ищу небольшое руководство. Я следую этому руководству, чтобы создать собственное расширение для Google Chrome.
https://www.seomoz.org/blog/building-chrome-apps-and-extensions
Он отлично работает с их примерами, но когда я пытаюсь применить его к своим собственным данным JSON, он не работает.
Их пример:
var messages = [];
var whens = [];
function checkNotifications(){
$.getJSON('https://dl.dropbox.com/u/31988864/notifications.json',function(data){
var new_messages = [];
var new_whens = [];
$.each(data, function(key, val) {
if (messages.indexOf(val['message']) == -1){
chrome.browserAction.setBadgeText({'text': 'New'});
chrome.browserAction.setBadgeBackgroundColor({'color': '#f00'});
}
new_messages.push(val['message']);
new_whens.push(val['when']);
});
messages = new_messages;
whens = new_whens;
});
}
checkNotifications();
// 1800000 milliseconds is 30 minutes
setInterval(checkNotifications,1800000);
Пример данных notifications.json
выглядит так:
[
{"message": "<b>New blog post</b>: by David Sottimano - <a href='https://www.distilled.net/blog/miscellaneous/proxy-server-essential-information-for-seos/'>Proxy server essential information for SEOs</a>", "when": "6 days ago"},
{"message": "<b>New module released</b>: Further SEO - <a href='https://www.distilled.net/u/linkbait/'>Linkbait that gets links</a>", "when": "11 days ago"},
{"message": "<b>New blog post</b>: by Benjamin Estes - <a href='https://www.distilled.net/blog/web-analytics/segmenting-keywords-using-seotools/'>Segmenting keywords using SeoTools</a>", "when": "14 days ago"},
{"message": "<b>New blog post</b>: by Will Critchlow - <a href='https://www.distilled.net/blog/conversion-rate-optimization/why-your-cro-tests-fail/'>Why your CRO tests fail</a>", "when": "16 days ago"}
]
Очень прямолинейно. Он получает данные из notifications.json
и, по сути, делает foreach
для результатов поиска нового тега message
. Если он найдет его, он установит NEW на значке расширения.
Естественно, я хочу изменить $.getJSON('https://dl.dropbox.com/u/31988864/notifications.json',
на свой собственный RSS-канал, что делается с небольшой помощью Google для преобразования в JSON.
Вот образец вывода. Он довольно длинный, поэтому я предоставляю только отрывок.
{
"responseData":
{
"feed":
{
"feedUrl":"https://feeds.feedburner.com/thegearpost",
"title":"TheGearPost",
"link":"https://thegearpost.com",
"author":"",
"description":"The online gadget, gear and gift guide for men.",
"type":"rss20",
"entries":
[
{
"title":"Man Crates",
"link":"https://feedproxy.google.com/~r/thegearpost/~3/_WO8mJS7dUY/",
"author":"Pat",
"publishedDate":"Fri, 03 May 2013 12:19:10 -0700",
"contentSnippet":"Call in your own care package with Man Crates."
Я думаю, что могу заменить пример кода message
разделом contentSnippet
Google.
Однако это не работает, и это мой вопрос:
Как мне заставить это работать? Я пробовал val['responseData.feed.contentSnippet']
, val['feed.contentSnippet']
и даже просто val['contentSnippet']
в разделе ниже, но ничего из этого не работает.
$.each(data, function(key, val) {
if (messages.indexOf(val['responseData.feed.contentSnippet']) == -1){
chrome.browserAction.setBadgeText({'text': 'New'});
chrome.browserAction.setBadgeBackgroundColor({'color': '#f00'});
}
});
В конце концов, я хотел бы иметь возможность заменить слова NEW на фактическое количество непрочитанных. Но я думаю, мне нужно для начала наладить проверку биографических данных.
if (messages.indexOf(entry['contentSnippet']) == -1){
? 06.05.2013console.log("hello world");
даже не появляется. 06.05.2013