1

jQuery、XML、およびIE8ですべてのSOの回答を調べて試しましたが、何も結果が得られません。これをjQueryまたはJavascriptで動作させる方法について他に提案はありますか?

  $.ajax({
        type: "GET",
        url: "http://query.yahooapis.com/v1/public/yql?q=select%20title%2C%20link%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.fs.usda.gov%2Fwps%2FPA_WIDConsumption%2Frssgetfile%3FxFSENavChannel00%3D1109%26xFSENavChannel02%3D091000000000000%26pathinfo%3D%2Fwps%2Fportal%2Ffsinternet%2F!ut%2Fp%2Fc5%2F04_SB8K8xLLM9MSSzPy8xBz9CP0os3gjAwhwtDDw9_AI8zPwhQoYAOUjzeINcABHAwK6w0H2YaoI84GrAMvjMd_PIz83Vb8gN8Igy8RREQC1scDO%2Fdl3%2Fd3%2FL2dJQSEvUUt3QS9ZQnZ3LzZfMjAwMDAwMDBBODBPSEhWTjJNMDAwMDAwMDA!%2F%3Fnavtype%3DBROWSEBYSUBJECT%26forestname%3DRegion%25209%22",
    dataType:"xml",    
    success: function(msg){             
            data = parseXml(msg);

            $(data).find('item').each(function(index,val){
                var title = $(this).find("title").text();
                var link = $(this).find("link").text();
                $('#loadnews').append("<li><a href="+link+">"+title+"</a></li>");
            });    
        }
    });     

function parseXml(xml) {
     if ($.browser.msie  && parseInt($.browser.version, 10) === 8) {
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.loadXML(xml);
        xml = xmlDoc;
    }   
    return xml;
}
if ($.browser.msie  && parseInt($.browser.version, 10) === 8) {
  alert('IE8');
} else {
  alert('Non IE8');
}

フィドルはこちら: http://jsfiddle.net/tjbLf/7/

4

1 に答える 1

2

なぜ XML 変換が必要なのですか? jQuery がすべての作業を行います。

$.ajax({
    type: "GET",
    url: "...",
    dataType: "xml",
    success: function(data) {
        $(data).find('item').each(function(index, val) {
            var title = $(this).find("title").text();
            var link = $(this).find("link").text();
            $('#loadnews').append("<li><a href=" + link + ">" + title + "</a></li>");
        });
    }
});​

デモ: http://jsfiddle.net/tjbLf/9/

ただし、クロスドメイン リクエストでは、IE は「トランスポートなし」エラーを返します。JSONP を使用して外部 Web サービスからデータを受信することを検討してください。

于 2012-10-22T20:12:10.913 に答える