ylm's space

null

导航

FRAMESET

先说明一下几个重要的概念如下:

<FRAMESET> :用以划分主视图,即将整个页面首先分为几个大的区域(每个区域是一个单独的.html,.asp,.aspx文件),可多层嵌入

rows: 20%, 80% rows跟在FRAMESET后面,用以划分当前要划分的行数,当前指将页面分成20%和80%上下两部分。

cols:  20%, 80%    同上,将当前页面分成20%和80%左右两部分。

<FRAME name=123 src="maincontrol_f.files/left.htm" target="dynamic"> 

这个是真正说明被框架所包含的单独文件的地方,src:位置,target:目标框架的名字,name:用以被其它页面的target属性所指向。

<NOFRAMES></NOFRAMES>此标签内的内容是,当用户的浏览器不支持frameset时所显示给用户看的内容。

有了以上的说明,看下面的内容就没有疑问了:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<HEAD>
<TITLE>
这个页面包含框架。需要浏览器支持。
</TITLE>
<META http-equiv=content-type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1491" name=GENERATOR>
</HEAD>
<FRAMESET rows="20%, 80%" >//
<FRAME src="maincontrol_f.files/top.htm" scrolling="no" noresize  frameborder="0">
<FRAMESET cols="15%, 85%">
<FRAME src="maincontrol_f.files/left.htm" target="dynamic">
<FRAME name=wwm src="maincontrol_f.files/main.htm" namo_target_frame="myframe" >
</FRAMESET>      
<NOFRAMES>
   <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
    <p>这个页面包含框架。需要浏览器支持。</p>
    </body>
</NOFRAMES>
</FRAMESET>
    </HTML>

如果有一个文件成为多个链接的目标时(比如说一个html文件,被多个frame 的target属性所指定,作为替代在每一个frame里指定target属性的方法如下:<BASE target="dynamic">,目标名称必须以字母开始。

 

上面的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文件中嵌入文件。示例如下:

<BODY text=black vLink=purple aLink=red link=blue bgColor=white>
<iframe name="import_frame" width=580 height=80 src="11111.html" frameborder=auto>
</iframe>
<P> 1.aspx</P>
</BODY>

其常用的属性如下:
      name:内嵌帧名称

  width:内嵌帧宽度(可用像素值或百分比)

  height:内嵌帧高度(可用像素值或百分比)

  frameborder:内嵌帧边框

  marginwidth:帧内文本的左右页边距

  marginheight:帧内文本的上下页边距

  scrolling:是否出现滚动条(“auto”为自动,“yes”为显示,“no”为不显示)

  src:内嵌入文件的地址

  style:内嵌文档的样式(如设置文档背景等)

  allowtransparency:是否允许透明

说明:同一页面间的iframe框架内的所有元素均可相互访问,但前提是:所有页面都已被页面正确载入。这是个很好的事情,因为如果只是为了好看而用frameset却失去了互访能力就不值得了,至少我这样认为。

 

不过使用iframe也是有限制了,比如iframe的一些透明效果就需要浏览器支持的:

像以下的代码如果IE版本低于5.5就看不到效果了:

<IFRAME ID="Frame1" SRC="transparentBody.htm" allowTransparency="true"></IFRAME>
<IFRAME ID="Frame2" SRC="transparentBody.htm" allowTransparency="true" STYLE="background-color: green"> </IFRAME>
<IFRAME ID="Frame3" SRC="transparentBody.htm"></IFRAME>
<IFRAME ID="Frame4" SRC="transparentBody.htm" STYLE="background-color: green"> </IFRAME>

可惜的是,在iframe里没有target属性来指定目标了。

 

而且关于iframe的使用也会使得制作网页的人有可能利用其溢出漏洞而攻击浏览者: 

具体地讲,一个叫做SHDOCVW.DLL的负责翻译IFRAME、FRAME和EMBED标记的通用Windows DLL文件受到缓冲溢出攻击的影响。恶意人员通过构造一个恶意的HTML文件,在其<IFRAME>标记中的“SRC”和“NAME”参数包含超长字符串,就可以引发缓冲区溢出攻击。成功利用该漏洞可以执行任意代码。当用户浏览HTML网页或查看HTML格式的邮件时,如果其中包含恶意构造的HTML标记,有可能系统会被恶意人员远程接管。

posted on 2006-12-12 16:35  ylm㊣  阅读(1368)  评论(0编辑  收藏  举报