我想将一个来自HTML 4的<iframe>
添加到HTML 5网页中。
这样做时我是否应该注意任何JavaScript或DOM冲突?
由于文档的来源类型不同,浏览器在遇到某些特殊情况时是否会遇到任何错误?
答案 0 :(得分:3)
完全没有,您可以将iframe视为当前页面中打开的浏览器窗口。 如果浏览器能够在普通标签上正确呈现HTML4页面,那么iframe也没有问题(但有一些限制与HTML4 / 5无关)。
答案 1 :(得分:1)
不,假设两个页面都有<!DOCTYPE>
,则不会有任何冲突。事实上,浏览器甚至不区分HTML 4和HTML 5。
更具体地说,如果没有DOCTYPE,页面将以怪癖模式呈现,这可能会导致几个主要差异。例如,在Internet Explorer中,页面将由较旧的引擎实现呈现,从而产生多个DOM和JS(以及布局差异)。如果你使用JS来操纵另一个框架中的一个框架,那么有可能某些东西不能像你期望的那样工作 - 就像在标准模式下那样。
TLDR;使用<!DOCTYPE>
。
答案 2 :(得分:0)
对于IE,它具有不同的呈现和JS支持,具体取决于doctype,如果框架页面位于同一个域上并且HTML5父级调用框架页面中元素的方法,则可用的方法将仅限于旧的东西。例如,addEventListener()可能无法在框架页面中的窗口,文档和元素上使用。
因此,仅仅因为HTML5页面支持所有类型的新内容,这并不意味着您可以使用其环境在非HTML5框架页面中的对象上调用这些函数。