框架 frame
什么是框架?
- 我们通过
<img>
等标记将多个资源或附件组合成一个页面 - 我们通过
<a>
标记将多个页面链接组成一个站点 - 那么,可否将多个独立的页面组合成为一个页面?
HTML提供框架<iframe>
标记,将多完整的页面(区别于资源或附件)组合为一个页面,但同时又保持各页面的独立性(各页面之间的数据不共享、互动操作不相干)
文档、页面、窗口
- 文档: 从信息使用者的角度,将多段代码或数据组合和视作为一个整体,即一个单元,比如html文档、css文档、png文档等,分别对应于不同的文档类型
- 文件: 是从存储角度划分的一个单元
- 页面: 是从Web网络的角度,将多个文档或文件或资源组合为一个单元,便于网络上的标识和引用
- 窗口: 是从操作系统进行可视化渲染的角度进行划分的单元,一般一个窗口对应于一个页面,但也可以通过frame标记使得一个窗口(通过附加子窗口的形式)可同时渲染多个页面。
- 对于非视觉用户(如语音阅读器、搜索爬虫等),则显示是无意义的。
本质上,上述概念都起着容器的作用,但对应于不同的环境
iframe
Export
HTML
Result
<iframe>
的作用相当于将子文档嵌入到主文档中- 示例中
<a target='newsrc'>
的用法是:当触发该链接时,它将链接标记指向的页面嵌入到名称为newsrc的<iframe>
中,相当于给<iframe>
重新指定了src
的属性 <iframe>
允许多重嵌套,即<iframe><iframe></iframe></iframe>
是合法的,本节代码示例控件即基于此实现
高级应用示例
在 http://jq22.com 这类代码演示网站中,实现如下效果:
- 如何为众多不同来源的示例代码提供统一的演示界面,譬如站点顶端的工具栏
- 如何防止演示示例的css或javascript不会和jq22自身的代码发生冲突
framesets
你或许听说过这个标记,它将多个页面定义为一个页面组,并且多个页面在不同的窗口中显示,承担不同的角色,多被用于实现固定侧边栏一类的可视化效果。正是由于该标记这种可视化窗口之间过于紧密的联系,在HTML5中被废弃,请勿使用!