я пытаюсь построить RSS Сборщик Extension с помощью этого учебника -Ошибка - не удается вызвать метод «SendRequest» неопределенный
http://www.lifehacker.com.au/2011/11/how-to-build-a-chrome-extension
Но я думаю, это немного старое и Google уже внесены некоторые изменения , Расширение для загрузки там вообще не работает. Я решил много ошибок, чтобы сделать его работу, но им stucked в этом:
Uncaught TypeError: Cannot call method 'sendRequest' of undefined
Это мой popup.html файл, где ошибка.
function fetch_feed() {
chrome.extension.sendRequest({'action' : 'fetch_feed', 'url' : 'http://spfc.terra.com.br/rss/news.xml'},
function(response) {
display_stories(response);
}
);
}
function display_stories(feed_data) {
var xml_doc = $.parseXML(feed_data);
$xml = $(xml_doc);
var items = $xml.find("item");
$('#popup').html('<img src="logo.png" id="logo" onclick="open_item(\'http://spfc.terra.com.br/\'); window.close();" /><br clear="all" />');
items.each(function(index, element) {
var post = parse_post(element);
var item = '';
var class2 = '';
if (index >= localStorage['unread_count']) {
// // console.log('visited');
item += '<div class="post read">';
}
else {
item += '<div class="post">'
}
item += '<span class="tag">' + post.tag + '</span>\
<a href="' + post.url + '">\
<div id="' + post.id + '" class="item" onclick="open_item(\'' + post.url + '\');">\
<img src="' + post.img + '" width="107" height="60" />\
<h4>' + post.title + '</h4>\
<span class="description">' + post.description + '...</span>\
</div>\
</a>';
item += '</div>';
$('#popup').append(item);
});
}
Кстати я тоже об ошибке в background.html, в этой части:
function fetch_feed(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = xhr.responseText;
callback(data);
} else {
callback(null);
}
}
}
// Note that any URL fetched here must be matched by a permission in
// the manifest.json file!
xhr.open('GET', url, true);
xhr.send();
}
function onRequest(request, sender, callback) {
if (request.action == 'fetch_feed') {
fetch_feed(request.url, callback);
}
}
chrome.extension.onRequest.addListener(onRequest);
ли та же ошибка, но с другим свойством:
Uncaught TypeError: Cannot read property 'onRequest' of undefined
P.S. Я попытался найти решение здесь, прежде чем спросить и не смог. Подождите, пока не поможет его решить.
Спасибо за ответ. Я заменил sendRequest sendMessage и onRequest на onMessage (в background.html), и я получаю ту же ошибку: ** Uncaught TypeError: Не удается вызвать метод 'sendMessage' неопределенного ** –
@ThiagoDosReis Извините, я написал функцию с ошибкой должен быть 'chrome.runtime' вместо chrome.extension для' sendMessage' и 'onMessage' – frisco