2013-03-12 67 views
2

我有一个包含一个嵌入式的iframe声明类似下面CDATA节:为什么CDATA节中的IFRAME会破坏解析器?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <div>before iframe</div> 
    <iframe id="xml_test"> 
     <?xml version="1.0" encoding="UTF-8"?> 
     <xml_data> 
      <node> 
       <![CDATA[ 
        "<iframe src=\"http://imgur.com\"></iframe>" 
       ]]> 
      </node> 
     </xml_data> 
    </iframe> 
    <div>after iframe</div> 
</body> 
</html> 

在多个浏览器所产生的DOM展望似乎CDATA节内的iframe声明不被忽视:

enter image description here

的HTML也是混乱的:

enter image description here

从CDATA部分删除收盘iframe标签修复它:

enter image description here

任何想法,为什么出现这种情况?

回答

0

元素的内容不能像这样内联定义。在第一个</iframe>之前,标签的内容全部被忽略,其关闭元素id=xml_test;其余的解析应该是有道理的。

+0

与此相似吗? - '