以下代码在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
是否可以跨浏览器以相同格式获取输出?这样我就可以在浏览器中以一致的方式获得字段和属性。