2

我有一个包含嵌入式 iframe 声明的 CDATA 部分,如下所示:

<!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,似乎iframeCDATA 部分中的声明没有被忽略:

在此处输入图像描述

HTML 也很混乱:

在此处输入图像描述

从 CDATA 部分中删除结束iframe标记可以修复它:

在此处输入图像描述

知道为什么会这样吗?

4

1 回答 1

0

<iframe>元素不能像这样内联定义它们的内容。标记的内容都被忽略,直到第一个;</iframe>关闭元素 id=xml_test从这个角度来看,其余的解析应该是有意义的。

于 2013-03-12T22:21:10.880 回答