先说明一下几个重要的概念如下:
如果有一个文件成为多个链接的目标时(比如说一个html文件,被多个frame 的target属性所指定,作为替代在每一个frame里指定target属性的方法如下:
上面的html文件里面跟在FRAME后的scrolling,noresize,frameborder,weight,height是它的一些常用属性,试试就知道了。
frameset的部分属性的意义如下(也是从网上找的:)
name-- name of frame for targetting
src-- source of frame content
frameborder(1|0) -- request frame borders
marginwidth -- margin widths in pixels
marginheight -- margin height in pixels
scrolling (yes|no|auto) -- scrollbar or none
align -- vertical or horizontal alignment
height -- suggested height
width -- suggested width
除此以外,还有一个iframe的概念:用以在html文件中嵌入文件。示例如下:
1.aspx
其常用的属性如下:
name:内嵌帧名称
width:内嵌帧宽度(可用像素值或百分比)
height:内嵌帧高度(可用像素值或百分比)
frameborder:内嵌帧边框
marginwidth:帧内文本的左右页边距
marginheight:帧内文本的上下页边距
scrolling:是否出现滚动条(“auto”为自动,“yes”为显示,“no”为不显示)
src:内嵌入文件的地址
style:内嵌文档的样式(如设置文档背景等)
allowtransparency:是否允许透明
说明:同一页面间的iframe框架内的所有元素均可相互访问,但前提是:所有页面都已被页面正确载入。这是个很好的事情,因为如果只是为了好看而用frameset却失去了互访能力就不值得了,至少我这样认为。
不过使用iframe也是有限制了,比如iframe的一些透明效果就需要浏览器支持的:
像以下的代码如果IE版本低于5.5就看不到效果了:
可惜的是,在iframe里没有target属性来指定目标了。
而且关于iframe的使用也会使得制作网页的人有可能利用其溢出漏洞而攻击浏览者:
具体地讲,一个叫做SHDOCVW.DLL的负责翻译IFRAME、FRAME和EMBED标记的通用Windows DLL文件受到缓冲溢出攻击的影响。恶意人员通过构造一个恶意的HTML文件,在其标记中的“SRC”和“NAME”参数包含超长字符串,就可以引发缓冲区溢出攻击。成功利用该漏洞可以执行任意代码。当用户浏览HTML网页或查看HTML格式的邮件时,如果其中包含恶意构造的HTML标记,有可能系统会被恶意人员远程接管。