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 を見るとiframe、CDATA セクション内の宣言が無視されていないようです。

ここに画像の説明を入力

HTMLもめちゃくちゃです:

ここに画像の説明を入力

CDATA セクションから終了タグを削除すると、iframe次のように修正されます。

ここに画像の説明を入力

なぜこれが起こるのか分かりますか?

4

1 に答える 1

0

<iframe>要素の内容をそのようにインラインで定義することはできません。タグの内容は、要素を;</iframe>で閉じる最初の まですべて無視されます。id=xml_test解析の残りの部分は、その観点から理解できるはずです。

于 2013-03-12T22:21:10.880 に答える