IE10,11 CDATA用连字符解析错了

时间:2014-02-26 11:29:26

标签: javascript html xml internet-explorer internet-explorer-10

我遇到了这样的问题:当我尝试解析从服务器收到的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 我将data等于<div class="jq_results_container_outer"><div class="jq

一切适用于FF,Chrome,Opera,IE 8,9。 感谢

1 个答案:

答案 0 :(得分:2)

看看这个提交到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
相关问题