javascript – IE10,11 CDATA连字符解析错误

我遇到了这样的问题:当我尝试解析从服务器收到的xml时,CDATA块中包含的消息在IE10中被解析,11直到找到第一个连字符.

查看我收到的XML示例:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<response>
    <task>results</task>
    <finish_msg><![CDATA[
      <div class="jq_results_container_outer">
        <div class="jq-msg-alert-0">
        </div>
      </div><br />]]>
   </finish_msg>
</response>

当我在IE 10中调用这样的Javascript代码时,11 var data = response.getElementsByTagName(‘finish_msg’)[0] .firstChild.data
我得到的数据等于< div class =“jq_results_container_outer”>< div class =“jq 一切适用于FF,Chrome,Opera,IE 8,9.
谢谢

最佳答案 看看IE11的这个错误提交:

https://connect.microsoft.com/IE/feedback/details/1398926/ie11-does-not-parse-cdata-containing-hyphens-correctly

似乎在Edge和IE11(11.0.10240.16431)中修复了该错误,但对我来说,我仍然得到了IE11上的错误.

该错误可以概括为:

new DOMParser().parseFromString('<tag><![CDATA[data-with-hyphen]]></tag>', 'text/xml').firstChild.firstChild.nodeValue;

结果将在第一次出现连字符时具有截断值.

编辑:作为解决方法,您可以使用以下格式检索内容:

response.getElementsByTagName('finish_msg')[0].textContent
点赞