浏览器解析html时的一种容错处理方案
以下这种情况下:
<p>aaaa<font>bbb<p>ccc</p>ddd</font>eee</p>
浏览器会"分断"<p>标签,变成:
<p>aaaa<font>bbb</font></p><p><font>ccc</font></p><font>ddd</font>eee<p></p>
分断方法是在html形成dom树的时候,
p标签以及内容已经被添加到dom tree 中后(此时没有做容错处理),
再处理p节点下的子元素,形成分断效果(该移动的元素移动,该新建的元素新建(比如上例中多出来的font元素))(容错处理)。
处理完后,继续解析后面的内容.
这是第一个层次的容错处理。(同样适合于table中的元素分断)
在这个容错层次的基础上,然后是有固定格式的元素的处理,比如table元素。
还是按照一般解析的方法得到table的dom tree,
然后提取其中的不必要元素到table的父节点,留下符合table规范的元素。(容错处理)