IE9兼容模式下的XMLSerializer不工作

XMLSerializer in IE9 compatability mode not working

本文关键字:XMLSerializer 工作 模式 IE9      更新时间:2023-09-26

我有这个代码:

.... 
    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 

有人知道处理这个问题的方法吗?是否有其他方法可以像XMLSerializer那样将DOM文档/对象转换为文本?

谢谢。

由于兼容模式可以模拟IE8和down行为,所以它不起作用。XMLSerializer适用于IE9及以上版本(标准模式)。将DOM对象转换为字符串的另一种方法是使用outerHTML

示例DOM:

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

获取字符串表示:

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

最终做了这样的事情,似乎完成了任务:

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