Загрузка новостной ленты XML через Ajax - IE8 не работает
Итак, у меня есть система новостной ленты, которая отлично работает во всех браузерах, кроме IE8!
Теперь код, который я написал, был создан методом проб и ошибок, поэтому могут возникнуть некоторые очевидные проблемы с кодированием, о которых я не знаю.
Вот внешний файл JS (я использую jQuery 1.7.2)
$(document).ready(function(){
$.ajax({
type: "GET",
url: "newsfeed_en.xml",
dataType: "html",
success: function(xml) {
$(xml).find("element:first").each(function(){
var year = $(this).find("year").text();
var month = $(this).find("month").text();
var day = $(this).find("day").text();
var date = day+"-"+month+"-"+year;
var content = $(this).find("content").html();
var newselement = '<div class="newsElement"><h4>'+date+'</h4><p>'+content+'</p></div>';
$('#news h1').after(newselement);
});
$(xml).find("element:gt(0)").each(function(){
var year = $(this).find("year").text();
var month = $(this).find("month").text();
var day = $(this).find("day").text();
var date = day+"-"+month+"-"+year;
var content = $(this).find("content").html();
var newselement = '<div class="newsElement"><h4>'+date+'</h4><p>'+content+'</p></div>';
$('#news #paneMoreNews').append(newselement);
});
}
});
});
`
Для этого нужно взять первый ЭЛЕМЕНТ и поместить его в одно место, а все остальные - в другое.
Теперь мне пришлось установить тип данных в HTML, потому что некоторые элементы содержат ССЫЛКИ, но изменение его на XML не решает проблему. Убрать ": первый" прочь тоже не решает.
Я искал это место, но ни одно из других решений не работает.
1 ответ
Решение
Вам нужно использовать тип данных: xml
$.ajax({
type: "GET",
url: "sites.xml",
dataType: "xml",
success: function(xml) {
}
});