我有一个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
声明:
HTML也搞砸了:
从CDATA部分删除结束iframe
标记会修复它:
知道为什么会这样吗?
答案 0 :(得分:0)
<iframe>
元素的内容不能像内联那样定义。在第一个</iframe>
之前,标签的内容都会被忽略,这会使id=xml_test
关闭元素;其余的解析应该是有道理的。