IE11 JS XMLHTTPRequest / XMLParser丢弃属性

时间:2014-03-05 23:16:28

标签: javascript ajax internet-explorer xmlhttprequest internet-explorer-11

所以我有一个AJAX调用,它返回一个完整的XHTML文档。在IE中,当我从ajax.responseXML获取XMLDocument时,缺少body元素上的所有属性。创建新的DOMParser并重新解析ajax.responseText会得到相同的结果。在FF或Chrome中没有问题。

现在使用以下解决方法:

var x;
var body = xmldoc.getElementById('body');

if (!body) { //WTF?? IE loses the body's attributes 0.o
    body = xmldoc.getElementsByTagName('body')[0];
    var str = this.ajax.responseText;
    var par = new DOMParser();
    var tmpdoc;
    var attr;
    str = str.substr(str.indexOf('<body'));
    str = str.substr(0, str.indexOf('>') + 1);
    str += "</body>";
    tmpdoc = par.parseFromString(str, "text/xml");
    attr = tmpdoc.documentElement.attributes;
    for (x = 0; x < attr.length; x++)
        body.setAttribute(attr.item(x).name, attr.item(x).value);
}

这是超级hacky,但有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:0)

IE11在同一个域上特别在localhost上有一些AJAX XMLhttpRequest的问题,Internet Explorer 11 does not add the Origin header on a CORS request?

有一个解释