$ .parseXML在chrome和IE中返回不同的输出

时间:2014-08-30 19:01:13

标签: javascript jquery internet-explorer google-chrome xml-parsing

以下代码在chrome和IE中提供了不同的输出

    <script src="\xyz\jquery-1.11.1.min.js"></script>
<script>

var xml= $("<root/>");


var field=$("<Field/>");
$(field).attr('Name','DateOpened');
$(field).attr('DisplayName','DateOpened');
$(field).attr('Type','DateTime');
$(field).attr('Format','DateOnly');
$(field).attr('Required','FALSE');


var schema= $(field);
xml= $(xml).append(schema);

string= $(xml).prop('outerHTML');

xmlDoc=$.parseXML(string);

</script>

i have also used: 

  if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(string,"text/xml");
  }
else // Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.loadXML(string);
  }

在两种情况下,chrome的输出都是:

<root><field name="DateOpened" displayname="DateOpened" type="DateTime" format="DateOnly" required="required"/></root>

我可以访问名称属性,如$(xmlDoc).find(field).attr('name'); // DateOpened

但是在IE 8中,我得到了像

这样的输出
   <root><Field name="DateOpened" displayname="DateOpened" type="DateTime" format="DateOnly" required="required"></Field></root>

$(xmlDoc).find(field).attr('name')// undefined

在IE 9中,我得到的输出如下:

<root><field Name="DateOpened" DisplayName="DateOpened" Type="DateTime" Format="DateOnly" Required="required"/></root>

$(xmlDoc).find(field).attr('name')//undefined

是否可以跨浏览器以相同格式获取输出?这样我就可以在浏览器中以一致的方式获得字段和属性。

0 个答案:

没有答案