本文为HTML标准解读系列文章,其他文章详见这里。
在HTML中,把在页面中插入的其他HTML页面,称为「frame」。
有三种元素可以给页面插入frame,分别是:iframe
、object
、embed
:
<iframe src="example.html" ></iframe>
<object data="example.html" type="text/html"></object>
<embed src="example.html" type="text/html">
我们很少使用后面两种方法。一方面,这两种元素的语义是插入其他类型的外部资源/插件,比如PDF,而不是HTML页面。另一方面,相比于iframe,object和embed都缺乏相关的安全特性。比如,如果上面的example.html里面的脚本企图通过alert()
发起一个弹窗,只有iframe元素提供相关的能力去禁用这个弹窗,具体方法我们会在下面谈到。
iframe简史
在90年代,有一个曾经被认为“大有搞头”的标签叫frameset,通过frameset标签,开发者可以给页面嵌入多个frame,这些frame可以像table元素一样在页面中排列,比如:
<frameset rows="10%,80%,10%">
<frame name="top" src="top_frame.htm">
<frame name="main