0

我制作了一个脚本来使用 jQuery 解析 XML 文件,因为它位于另一个域中,所以我使用 YQL 作为代理。

该脚本在 Chrome、Safari、FF 中运行良好。使用 IE Developer 工具时,我可以看到 XML 文件,但在第一次 ajax 调用之后它似乎没有运行任何东西。关于 Opera 如果有人有类似于 IE 的 XDomainRequest 的修复程序,那将是合适的,但不如为 IE 解决它重要。如果可能的话,我想通过不使用 jsonp-data 来解决这个问题。

$(document).ready(function() {

// detect IE CORS transport
if ('XDomainRequest' in window && window.XDomainRequest !== null) {

  // override default jQuery transport
  $.ajaxSettings.xhr = function() {
      try { return new XDomainRequest(); }
      catch(e) { }
  };

  // also, override the support check
  jQuery.support.cors = true;
    //runs in IE
    alert('hi1');
}
// ajax call to get the xml-data from the YQL console
$.ajax(
    //runs in IE
    alert('hi2'),
    {
    url: 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20%0A%20%20%20from%20xml%20%0A%20%20where%20url%3D%22https%3A%2F%2Fwww.lightbet.com%2Fxmlfeeds.aspx%3Ftype%3DCasinoJackpots%22&diagnostics=true',
    type: 'GET',
    dataType: 'xml',
    success : function(xml) {

    //doesn't run in IE
    alert('hi3');

    // Run the function for each Game tag in the XML file
    $('Game',xml).each(function game(i) {
        var $this = $(this),
            game = $this.attr("name") 

    // appned all the game names to a div
    $("#game_name").append(game);
    //doesn't run in IE
    alert('hi4');

    });
}});

});

4

1 回答 1

0

我应该先去 jQuery 错误报告网站,因为有一张票http://bugs.jquery.com/ticket/8283

jaubourg 这个很棒的插件使它非常流畅: https ://github.com/tlianza/ajaxHooks/blob/master/src/ajax/xdr.js

此外,如果有人获得了 Opera 的插件或某种修复程序,那将是非常受欢迎的。

于 2012-05-31T14:19:38.613 回答