2013-03-12 50 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

與此相似嗎? - '