HTML不再推荐页面中使用框架集,因此HTML5删除了
下面代码中,定义了一个行内框架
行内框架 主页面内容
HTML5新增的srcdoc属性允许直接指定HTML片段,这样元素将直接显示该srcdoc所指定的HTML片段,如果浏览器暂时不支持srcdoc,那么将会继续显示srcdoc所指定的页面内容。目前主流的浏览器都支持:比如说谷歌、火狐等等。例如,如下代码定义了同时指定srcdoc和src属性的元素,此时srcdoc属性将会覆盖src属性。
上面的粗体字代表了srcdoc属性,此时所生成的行内框架将直接显示该属性所指定的HTML片段,忽略src属性所指定的页面。显示的效果如下:
seamless属性是一个支持boolean值的属性,指定了该属性的所生成的框架看上去是原文档的一部分,不再显示边框和进度条。不过到目前为止,好像没有什么浏览器完全支持这个属性。
sandbox是一个安全性方面的属性,用于对框架中的增加一系列额外限制。该属性支持如下属性值:
允许框架内加载JavaScript
对于不指定sandbox属性的元素所加载的HTML界面几乎不受任何限制,如果指定了sandbox为"",这就意味着限制了如下功能:
指定这个属性,可以允许框架内的界面提交表单,通常和allow-same-origin属性结合使用。例如,指定allow-forms属性值
表单页面 用户名: 密码:
除了在IE可以提交之外,其他浏览器都不能提交,如果将sandbox="allow-forms"改为sandbox="allow-forms allow-same-origin",表单什么的就都可以提交了。浏览器要求必须是同源的才可以,因此才需要添加allow-same-origin属性值。
允许框架中使用JavaScript脚本,写了两个页面,如下所示:
脚本页面 单击我
运行之后,超链接的内容发生了变化,此时页面的JavaScript脚本确实执行了,但第二条却没有执行,这是因为出于安全考虑,禁止了这个属性执行JavaScript执行对话框,当然IE除外,现在360也支持了,谷歌允许效果如下图所示。
允许框架内页面中超链接在该行内框架的父级浏览器中打开,可以自己亲自试一试,第一个是nav.html。
表单页面 疯狂Java联盟 target="_top">疯狂Java联盟