2023年6月20日发(作者:)

Frame框架在Html中的应⽤详解FRAME(框架)是Web上经常会看到的页⾯结构。使⽤可视Web开发⼯具(⽐如Dreamweaver或者Frontpage),虽然可以在WYSIWYG环境中通过简单的⿏标托拽完成FRAME的构建,但是要实现真正细致甚⾄强⼤的功能,仔细理解FRAME的代码结构⾄关重要!你将发现,FRAME原来是这样的亲切易⽤。  创建基本的FRAMESET:  FRAMESET页⾯与普遍的Web页⾯有些不同。虽然仍旧以和包含标题的标记以及其他脚本开始,但是其内容仅仅是表⽰的各个页⾯的版式设计。因此,不再需要有元素,只需要标记。  通过标记的属性,浏览器窗⼝被分割为⼀个个格⼦。的设置值可以是固定的像素值,可以是总空间的百分⽐值,还可以是⽤*以及⼀个数字相乘表⽰的分割剩余空间的⽐例值。⽐如说:cols="80,20%,*" 分为3列,宽度分别为80像素,窗⼝宽度的20%,以及剩余宽度

rows="25%,75%" 分为2⾏,宽度分别为窗⼝宽度的25%和75%

rows="*,3*" 与上述第2个表⽰的⼀样,分为2⾏,但表⽰⽅法不同:第⼀列宽度为第⼆⾏的1/3

  在和之间,⽤多个标记表⽰每个分割区。col表⽰从左到右的列,row表⽰从上到下的⾏。每个有⼀个src属性,给出了这个FRAME的内容。它可以是浏览器能显⽰的任何⼀个合法URL,或者是另外⼀个FRAMESET。为预防递归现象,⼀个FRAME不能包含它本⾝所在的FRAMESET页⾯。要⽤name属性定义FRAME的名字,这样就可以在代码或者脚本程序中引⽤它。 请看⼀段基本的FRAMESET代码:

Simple FRAMESET  FRAME间的链接:  ⼀个FRAMESET结构的页⾯,新⽂档只转载进窗⼝的⼀部分中,⽽其他页⾯则保持静态不变。当⽤户点击FRAME中的链接时,新内容就在同⼀FRAME内打开。要让新内容在其他FRAME中打开,可以设置标记的target属性值为那个FRAME的name值。

  ⽽且,我们还可以设置打开⽬标为当前可见的任意⼀个FRAME,⽽不局限于本⾝的FRAMESET。⽬标可能是⼀个嵌套的FRAMESET中的FRAME,也可能是其他窗⼝中的FRAME。但是如果⽬标FRAME不存在,就会产⽣⼀个带有⽬标FRAME名字的新窗⼝。

  下⾯举个例⼦说明⼀下,假设有⼀个简单含2-FRAME的FRAMESET,⽂件名叫做,代码如下:

FrommCo home page

  ⽂件在左边的FRAME中,其中有⼀系列链接,点击它们后新内容将在右边的叫做content的FRAME中打开。下⾯是的代码:


Main page

Our mission

Our staff

FrommCo splash page

  请注意最后⼀个链接中target的定义为_parent,这属于4个特殊的保留值。它们是:

  _parent:在当前FRAMESET位置显⽰新href。

  _top:在当前整个窗⼝位置显⽰新href,⽐如本⾝FRAMESET位于另⼀个FRAMESET中。

  _self:强制在当前FRAME中显⽰新href。

  _blank:在新窗⼝中显⽰href。

  表⽰客户端图形地图的标记同样可以应⽤target属性,⽐如:

  Main page

  还有⼀种经常的情况是:Web页⾯中的⼤部分或者全部链接都要求在⼀个特别的FRAME中打开。这时,可以在页⾯的代码区使⽤标记设置默认的target,然后再分别定义特殊链接的target值。  修饰FRAME:  FRAMESET不仅在宽度、⾼度等⽅⾯具有可控制的数值,在美观⽅⾯也同样可以精确设置。

  默认情况下,FRAMESET的FRAME间有⼀个凸起的边沿,表⽰分割效果。如果不喜欢这个,想营造“⽆缝连接”的效果,可以在标记中设置FRAMEborder=0来消除它。在3.0及⾼版本的Navigator和Internet Explorer中,如果在标记中设置FRAMEborder=0,那么除了设置为FRAMEborder=1的FRAME外,所有其他FRAME的边沿都将消失。  虽然设置了FRAMEborder=0,有些浏览器仍旧会在FRAME间保留⼀些边沿的颜⾊痕迹。这时,可以在标记中添加FRAMEspacing=0(对Internet Explorer)或者border=0(对Navigator和Opera)实现真正的⽆缝连接。  请看下⾯的代码是如何使⽤这些属性的:

FrommCo home page

  上⾯的代码中有2个新的属性:noresize表⽰锁住FRAME⽽不允许使⽤⿏标改变⼤⼩,scrolling=no表⽰屏蔽FRAME的滚动条,scrolling=yes表⽰允许,scrolling=auto表⽰根据显⽰内容需要⾃动显⽰滚动条。  浮动FRAME:  浮动FRAME是HTML4.0规范中的⼀个定义,⽬前的浏览器都⽀持它。

  不象FRAMESET表⽰的分割区样⼦,⼀个浮动FRAME作为⼀个内置对象存在于Web页⾯上,其样式就象⼀个页⾯上的⼀个图形或者⼀个applet。浮动FRAME使⽤

Show

Show

Bring back

  注意,对应⽀持间的内容都将忽略。反之,其中的内容将显⽰出来,这可以⽤作解释当前浏览器不⽀持

See

  带有浮动FRAME的Web页⾯是FRAME⽂档的parent窗⼝,因此,多个浮动FRAME仍然可以通过数组去访问每⼀个FRAME。  预防脚本编程错误:  尽管FRAME是HTML的⼀个稳定规范说明,但DOM模型只把它们当做HTML元素⽽不是窗⼝,因此围绕FRAME的脚本编程并不是能很周全地定义。这个不⾜导致了当装载FRAME时会发⽣⼀些脚本执⾏⽅⾯的冲突。

  ⽴即修改FRAME内容的脚本经常会产⽣错误。原因在于:浏览器通常是先执⾏脚本命令,然后在按照src所⽰装⼊页⾯内容。

  解决⽅法很直接,就是判断FRAME内容是否装载完毕。有⼀个好的处理技巧是以HTML页⾯开始所有的FRAME,由它象主FRAMESET报告装载请看。⽐如说,有⼀个FRAMESET页⾯,要等装载完所有的FRAME后才能执⾏函数goToIt(),那么就将下⾯的JavaScript程序段放进FRAMESET⽂档中:

countDown=;

function soundOff(){ countDown--; if (countDown==0){ goToIt();}}  然后,在每个FRAME页⾯的标记中设置上onLoad="ff()"。当FRAME页⾯装载并执⾏soundOFF()后,等到countDown 为0时,就表⽰FRAME完全装载完毕。  总结:  FRAME是双刃剑,使⽤不好会造成混乱的站点结构和外观,使⽤得当将⼤⼤⽅便⽤户的操作⽅式以及形成清晰的页⾯风格。相信你看完本⽂后,会对FRAME有了更亲切的认识。

2023年6月20日发(作者:)

Frame框架在Html中的应⽤详解FRAME(框架)是Web上经常会看到的页⾯结构。使⽤可视Web开发⼯具(⽐如Dreamweaver或者Frontpage),虽然可以在WYSIWYG环境中通过简单的⿏标托拽完成FRAME的构建,但是要实现真正细致甚⾄强⼤的功能,仔细理解FRAME的代码结构⾄关重要!你将发现,FRAME原来是这样的亲切易⽤。  创建基本的FRAMESET:  FRAMESET页⾯与普遍的Web页⾯有些不同。虽然仍旧以和包含标题的标记以及其他脚本开始,但是其内容仅仅是表⽰的各个页⾯的版式设计。因此,不再需要有元素,只需要标记。  通过标记的属性,浏览器窗⼝被分割为⼀个个格⼦。的设置值可以是固定的像素值,可以是总空间的百分⽐值,还可以是⽤*以及⼀个数字相乘表⽰的分割剩余空间的⽐例值。⽐如说:cols="80,20%,*" 分为3列,宽度分别为80像素,窗⼝宽度的20%,以及剩余宽度

rows="25%,75%" 分为2⾏,宽度分别为窗⼝宽度的25%和75%

rows="*,3*" 与上述第2个表⽰的⼀样,分为2⾏,但表⽰⽅法不同:第⼀列宽度为第⼆⾏的1/3

  在和之间,⽤多个标记表⽰每个分割区。col表⽰从左到右的列,row表⽰从上到下的⾏。每个有⼀个src属性,给出了这个FRAME的内容。它可以是浏览器能显⽰的任何⼀个合法URL,或者是另外⼀个FRAMESET。为预防递归现象,⼀个FRAME不能包含它本⾝所在的FRAMESET页⾯。要⽤name属性定义FRAME的名字,这样就可以在代码或者脚本程序中引⽤它。 请看⼀段基本的FRAMESET代码:

Simple FRAMESET  FRAME间的链接:  ⼀个FRAMESET结构的页⾯,新⽂档只转载进窗⼝的⼀部分中,⽽其他页⾯则保持静态不变。当⽤户点击FRAME中的链接时,新内容就在同⼀FRAME内打开。要让新内容在其他FRAME中打开,可以设置标记的target属性值为那个FRAME的name值。

  ⽽且,我们还可以设置打开⽬标为当前可见的任意⼀个FRAME,⽽不局限于本⾝的FRAMESET。⽬标可能是⼀个嵌套的FRAMESET中的FRAME,也可能是其他窗⼝中的FRAME。但是如果⽬标FRAME不存在,就会产⽣⼀个带有⽬标FRAME名字的新窗⼝。

  下⾯举个例⼦说明⼀下,假设有⼀个简单含2-FRAME的FRAMESET,⽂件名叫做,代码如下:

FrommCo home page

  ⽂件在左边的FRAME中,其中有⼀系列链接,点击它们后新内容将在右边的叫做content的FRAME中打开。下⾯是的代码:


Main page

Our mission

Our staff

FrommCo splash page

  请注意最后⼀个链接中target的定义为_parent,这属于4个特殊的保留值。它们是:

  _parent:在当前FRAMESET位置显⽰新href。

  _top:在当前整个窗⼝位置显⽰新href,⽐如本⾝FRAMESET位于另⼀个FRAMESET中。

  _self:强制在当前FRAME中显⽰新href。

  _blank:在新窗⼝中显⽰href。

  表⽰客户端图形地图的标记同样可以应⽤target属性,⽐如:

  Main page

  还有⼀种经常的情况是:Web页⾯中的⼤部分或者全部链接都要求在⼀个特别的FRAME中打开。这时,可以在页⾯的代码区使⽤标记设置默认的target,然后再分别定义特殊链接的target值。  修饰FRAME:  FRAMESET不仅在宽度、⾼度等⽅⾯具有可控制的数值,在美观⽅⾯也同样可以精确设置。

  默认情况下,FRAMESET的FRAME间有⼀个凸起的边沿,表⽰分割效果。如果不喜欢这个,想营造“⽆缝连接”的效果,可以在标记中设置FRAMEborder=0来消除它。在3.0及⾼版本的Navigator和Internet Explorer中,如果在标记中设置FRAMEborder=0,那么除了设置为FRAMEborder=1的FRAME外,所有其他FRAME的边沿都将消失。  虽然设置了FRAMEborder=0,有些浏览器仍旧会在FRAME间保留⼀些边沿的颜⾊痕迹。这时,可以在标记中添加FRAMEspacing=0(对Internet Explorer)或者border=0(对Navigator和Opera)实现真正的⽆缝连接。  请看下⾯的代码是如何使⽤这些属性的:

FrommCo home page

  上⾯的代码中有2个新的属性:noresize表⽰锁住FRAME⽽不允许使⽤⿏标改变⼤⼩,scrolling=no表⽰屏蔽FRAME的滚动条,scrolling=yes表⽰允许,scrolling=auto表⽰根据显⽰内容需要⾃动显⽰滚动条。  浮动FRAME:  浮动FRAME是HTML4.0规范中的⼀个定义,⽬前的浏览器都⽀持它。

  不象FRAMESET表⽰的分割区样⼦,⼀个浮动FRAME作为⼀个内置对象存在于Web页⾯上,其样式就象⼀个页⾯上的⼀个图形或者⼀个applet。浮动FRAME使⽤

Show

Show

Bring back

  注意,对应⽀持间的内容都将忽略。反之,其中的内容将显⽰出来,这可以⽤作解释当前浏览器不⽀持

See

  带有浮动FRAME的Web页⾯是FRAME⽂档的parent窗⼝,因此,多个浮动FRAME仍然可以通过数组去访问每⼀个FRAME。  预防脚本编程错误:  尽管FRAME是HTML的⼀个稳定规范说明,但DOM模型只把它们当做HTML元素⽽不是窗⼝,因此围绕FRAME的脚本编程并不是能很周全地定义。这个不⾜导致了当装载FRAME时会发⽣⼀些脚本执⾏⽅⾯的冲突。

  ⽴即修改FRAME内容的脚本经常会产⽣错误。原因在于:浏览器通常是先执⾏脚本命令,然后在按照src所⽰装⼊页⾯内容。

  解决⽅法很直接,就是判断FRAME内容是否装载完毕。有⼀个好的处理技巧是以HTML页⾯开始所有的FRAME,由它象主FRAMESET报告装载请看。⽐如说,有⼀个FRAMESET页⾯,要等装载完所有的FRAME后才能执⾏函数goToIt(),那么就将下⾯的JavaScript程序段放进FRAMESET⽂档中:

countDown=;

function soundOff(){ countDown--; if (countDown==0){ goToIt();}}  然后,在每个FRAME页⾯的标记中设置上onLoad="ff()"。当FRAME页⾯装载并执⾏soundOFF()后,等到countDown 为0时,就表⽰FRAME完全装载完毕。  总结:  FRAME是双刃剑,使⽤不好会造成混乱的站点结构和外观,使⽤得当将⼤⼤⽅便⽤户的操作⽅式以及形成清晰的页⾯风格。相信你看完本⽂后,会对FRAME有了更亲切的认识。