IE9兼容模式下的XMLSerializer无法正常工作

时间:2014-11-07 05:05:18

标签: javascript jquery internet-explorer dom xmlserializer

我有这段代码:

.... 
    jQuery(document).ready(function() {
        function showResponse(responseText, statusText, xhr, $form)  {
            var myxml = responseText;
            var serializer = new XMLSerializer(); 
            var xmltostring = serializer.serializeToString(myxml);

当IE9处于兼容模式时,它在除IE9之外的所有浏览器中都能正常工作。出于原因,我们不会进入客户端需要在兼容模式下运行IE9,所以我试图找到解决方案。

报告的错误是:

'XMLSerializer' is undefined 

有人知道解决这个问题的方法吗?是否有另一种方法将DOM文档/对象转换为XMLSerializer之类的文本?

感谢。

2 个答案:

答案 0 :(得分:0)

由于兼容模式可能会模拟IE8和向下行为,因此无法正常工作。 XMLSerializer适用于IE9及更高版本(标准模式)。将DOM对象转换为字符串的另一种方法是使用outerHTML

示例DOM:

var div = document.createElement('div');
div.innerHTML = '<p>testing 123</p>';

获取字符串表示:

div.outerHTML
//=> "<div><p>testing 123</p></div>"

答案 1 :(得分:0)

结束这样的事情似乎完成了工作:

var xmltostring='';

if (typeof window.XMLSerializer !== 'undefined') {
    var serializer = new XMLSerializer(); 
    xmltostring = serializer.serializeToString(myxml);
} else {
    if(window.ActiveXObject){
        xmltostring = myxml.xml;
    }
}