gpt4 book ai didi

javascript - $.parseXML() 在 IE 8 以上的 IE 版本中不起作用

转载 作者:行者123 更新时间:2023-11-28 02:01:10 27 4
gpt4 key购买 nike

我在使用 $.parseXML() 和更多版本的 IE8 时遇到问题。它在 IE8、chrome 以及 Firefox 中运行得非常好。请查看下面给出的代码。

Jquery:

        var result = data.d;
var obj = decodeBase64(result);
var xmlDoc = $.parseXML(obj);

XML 返回:

<?xml version="1.0"?>
<ArrayOfMultiLineItemJson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema
MultiLineItemJson>
<Order_Number>PAAAA00017</Order_Number>
<Order_Item>01</Order_Item>
<Order_Subitem>0001</Order_Subitem>
<Order_Type>PO</Order_Type>
</MultiLineItemJson>
</ArrayOfMultiLineItemJson>

IE9 中的错误消息

Unhandled exception at line 490, column 3 in http://localhost:55005/resources/js/jquery-1.9.0.js

0x800a139e - Microsoft JScript runtime error: Invalid XML:
<?xml version="1.0"?><ArrayOfMultiLineItemJson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><MultiLineItemJson><Order_Number>PAAAA00017</Order_Number><Order_Item>01</Order_Item></ArrayOfMultiLineItemJson>

提前致谢

最佳答案

报错的代码可以追溯到jquery库代码

// Cross-browser xml parsing
parseXML: function( data ) {
var xml, tmp;
if ( !data || typeof data !== "string" ) {
return null;
}
try {
if ( window.DOMParser ) { // Standard
tmp = new DOMParser();
xml = tmp.parseFromString( data , "text/xml" );
} else { // IE
xml = new ActiveXObject( "Microsoft.XMLDOM" );
xml.async = "false";
xml.loadXML( data );
}
} catch( e ) {
xml = undefined;
}
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
jQuery.error( "Invalid XML: " + data );
}
return xml;
},

后来的浏览器即9,10返回window.DOMParser和DOMParser(); object ,因此代码进入 non-ie part 。但 ie 8 没有定义 DOMParser(),因此会抛出错误。

修复将添加 ie8 特定测试以及 if ( window.DOMParser )如果有帮助请告诉我

关于javascript - $.parseXML() 在 IE 8 以上的 IE 版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18426099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com