jquery代码不能用于ie8

时间:2013-11-13 06:44:40

标签: javascript jquery internet-explorer-8

一个功能不适用于IE8,但适用于谷歌浏览器和Firefox。

XmlDom包含xml数据

 $(XmlDom).find('Message').each(function(){
        if($(this).attr('id')==id)
        {
          msg=  $(this).find('messageText').text();

        }

    });

plz help

这是示例数据

      <Messages> 
      <Message id="4">      
      <messageText>text tenvcnvxtn.</messageText>
      </Message>
      <Message id="5">
      <messageText>text textn.</messageText>
      </Message>
    </Messages>

2 个答案:

答案 0 :(得分:3)

新版本的jQuery不支持IE8或以下版本。如果您需要支持它们,请使用migration plugin或支持IE8的jQuery版本。

1.9.1例如。

  

jQuery 1.x

     

jQuery 1.x系列在jQuery 1.9.0之后发生了重大变化。我们强烈   建议你也使用jQuery Migrate插件   从1.9之前版本的jQuery升级或需要使用插件   尚未更新。阅读jQuery 1.9 Upgrade Guid e和   jQuery 1.9 release blog post了解更多信息。

     

jQuery 2.x

     

jQuery 2.x与jQuery 1.x具有相同的API,但不支持   Internet Explorer 6,7或8. jQuery 1.9升级中的所有注释   指南也适用于此处。由于IE 6/7/8仍然比较常见,   我们建议使用1.x版本,除非您确定没有IE 6/7/8   用户正在访问该网站。请阅读2.0 release notes   小心。

答案 1 :(得分:0)

在IE8中,它使用HTML文档。它无法识别XML。 如果要使用XML,则需要通过IE XML解析器对其进行解析。

    var XmlDom = "<messages>" +
        "<message id=\"msg1\">" +
            "<messageText>message 1</messageText>" +
        "</message>" +
        "<message id=\"msg2\">" +
            "<messageText>message 2</messageText>" +
        "</message>" +
        "<message id=\"msg3\">" +
            "<messageText>message 3</messageText>" +
        "</message>" +
         "</messages>";
    var id = "msg2";
    var xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.loadXML(XmlDom);

    if (xml.parseError.errorCode != 0) {
            var err = xml.parseError;
            console.log(err.reason);
    }

    $("messages", xml).find("message").each(function(){
            if($(this).attr("id") == id) {
                    msg =  $(this).find("messageText").text();
                    console.log(msg);
            }
    });