我正在做一个我大量使用AJAX请求的网站 一个XML服务。事实上,我的网络几乎是一个前端 没有任何服务器,并使用AJAX进行通信 后端。

一切都很顺利(我在Ubuntu 9.04中开发和测试 和Firefox 3.0作为浏览器)。 有一天,我决定看看我的网络在IE8中的表现...... 恐怖!

没有任何工作,因为它在Firefox中非常棒。 更具体地说,Request.HTML不起作用。 正如我所说,我的网络非常依赖于此,所以没有任何效果。

我花了一天时间试图让一些东西运转但我没有运气.. 我到达的唯一结论是XML 解析不正确 (我希望我错了)。我们来看看代码:

var req = new Request.HTML({
        url: 'service/Catalog.groovy',

        onSuccess: function(responseTree, responseElements) {

            var catz = responseElements.filter('category');
            catz.each(function(cat){
                // cat = $(cat);
                var cat_id = cat.get('id');
                var subcategory = cat.getElement('subcategory');
                alert(cat_id);
                alert(cat.get('html'));
                alert(subcategory.get('html'));
           }
       },
       onFailure: function(){...}

});

例如,那段代码。 在Firefox中,它工作得很好。它提醒了一个ID(例如,7), 然后它显示了category元素的内容,例如:

<subcategory id='1'>
      <category_id>7</category_id>
      <code>ACTIO</code>
      <name>Action</name>
</subcategory>

然后它显示了一些内部元素的内容,在这种情况下:

<category_id>7</category_id>
<code>ACTIO</code>
<name>Action</name>

在IE8中,第一个警报正常(警报7) 但是下一个警报(alert(cat.get('html'));)给出了一个空字符串 最后扔了一个Exception ......它说了一些关于子类别的东西 beeing null。

我对此总结的是解析的元素 正确地 在Firefox中,但在IE8中我只获得了标签和属性, 其他一切 完全错了(事实上,失踪了)。我的意思是,内心的内容 一切 回应的元素哪里消失了!

您可以使用的其他事实:此代码:

alert(cat.get('tag')); resulted in
      Firefox: category
      IE8: /category <-----------(?)

嗯还有什么...... 哦,是的...你看到上面评论的那行( cat = $(cat); )是 某物 我试图解决这个问题。我在IE浏览器需要的mootools Docs中读到 明确地打电话 元素上的 $ 函数可以获得所有的Element-magic ......但是这个 没有解决任何问题。

我非常绝望......我甚至用 mootools.js 代码摆弄了

好的,所以...... 我想要你,亲爱的mootool-pro是帮助我解决这个问题, 因为我真的需要网络在IE8中运行,事实上我选择了 mootools忘记了兼容性问题...

ps:如果事情不明确,请问!我很感激任何帮助:D

有帮助吗?

解决方案

我之前使用jQuery遇到了类似的问题。问题是,在IE中,传入的响应数据需要由 Microsoft.XMLDOM ActiveX对象处理。

一般步骤是:

  1. 实例化ActiveX对象。

    var oXmlDoc = new ActiveXObject(&quot; Microsoft.XMLDOM&quot;);

  2. 将传入的响应数据传递给它并加载它。

    <代码> oXmlDoc.loadXML(sXmlResponseData);

  3. 根据需要解析它。

  4. 您可以查看完整分辨率这里

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top