Использование jQuery для разбора RSS-канала, проблемы с Firefox и Chrome
Я использовал библиотеку jQuery под названием jFeed для анализа и отображения RSS-канала блогов на моем личном веб-сайте. Сначала он работал очень хорошо, но после проверки он просто ничего не отображает, кроме Internet Explorer, где, кажется, он работает нормально.
После проверки консоли javascript с помощью Firebug в Firefox, она показывает ошибку на вкладке "XML" следующим образом:
Ошибка синтаксического анализа XML: элемент не найден Расположение: moz-nullprincipal:{3f8a0c62-32b4-4f63-b69c- 9ef402b40b64} Строка № 1, столбец 1: ^
Хотя я понятия не имею, что делать с этой информацией. Вот код, который я использовал, чтобы получить RSS-канал и отобразить его (он почти такой же, как в примере, представленном на веб-сайте jFeed):
jQuery.getFeed ({url: ' http://sammarshalldesign.co.uk/blog/wordpress/?feed=rss2', success: function (feed) {
var html = '';
for(var i = 0; i < feed.items.length && i < 5; i++) {
var item = feed.items[i];
html += '<h3>'
+ '<a href="'
+ item.link
+ '">'
+ item.title
+ '</a>'
+ '</h3>';
html += '<div>'
+ item.description
+ '</div>';
}//end for
jQuery('#feed').append(html);
}//end feed function
});//end getfeed
Любая помощь могла бы быть полезна.
3 ответа
В качестве альтернативы, Google действительно предоставляет API фида. Воспользуйтесь этим плагином Google Feed, который делает весь процесс довольно простым (не требуется php).
Я обнаружил, что это трудный путь, но в отличие от Internet Explorer, Firefox не допускает междоменные XML-запросы без какой-либо аутентификации с сервера, на который вы попали. Вам нужно использовать либо JSON (с помощью которого вы можете выполните межсайтовый / междоменный запрос в jQuery) или создайте какой-либо прокси-сервер для своего XML-канала локально, а затем нажмите на него запросом jQuery.
Вы пытаетесь загрузить канал RSS с другого домена? Если так, это не сработает. jFeed поставляется с примером PHP-прокси, который вы можете разместить на своем сервере и вызвать. Или вы можете использовать Yahoo! Трубы для получения данных в формате JSON.