一、 I FRAM E的详细用法
<IFRAME>用于设置文本或图形的浮动图文框或容器。
BORDER
<IFRAMEBORD ER="3"></IFRAME>
设定围绕图文框的边缘宽度
FRAME BODER
<IFRAMEFRAMEBODER="0"></IFRAME>
设置边框是不否为3维0=否 1=是
HEI GH T,WI D T H
<IFRAMEHEIG HT="31"WIDTH="88"></IFRAM E>
设质边框的宽度和高度
SCROLLING
<IFRAMESCROLLING="NO"></IFRAM E>
是否有滚动条YES,NO,AUT O)
S RC
<IFRAMESRC="GIRL.GIF"></IFRAME>
指定IFRAME调用的文件或图片(HTML,HTM,GIF,JPEG,JP G,PNG,TXT,*.*)
-------------------------------------------------------------
“画中画”效果--谈I F RAME标签的使用
纵观时下网站本来网速就有些慢可是几乎每页都要放什么Bann er栏目图片版权等一大堆雷同的东西当然 出于网站风格统一、广告效应的需要本无可厚非可毕竟让用户的钱包为这些“点缀“的东西”日益消得钱憔悴”了有没有办法让这些雷同的东西一次下载后就不用再下载而只下载那些内容有变化区域的网页内容呢
答案很肯定应用Iframe标记
一、 Iframe标记的使用
提起Iframe可能你早已将之扔到“被遗忘的角落”了不过说起其兄弟Frame就不会陌生了。 Frame标记即帧标记我们所说的多帧结构就是在一个浏览器窗口中显示多个H T ML文件。现在我们遇到一种很现实的情况如有一个教程是一节一节地上每页末尾做一个“上一节“、 “下一节“的链接除了每节教程内容不同之外页面其它部分内容都是相同的如果一页一页地做笨页面这似乎太让人厌烦了这时突发奇想如果有一种方法让页面其它地方不变只将教程做成一页一页的内容页不含其它内容在点击上下翻页链接时只改变教程内容部分其它保持不变这样一是省时另则以后如教程有个三长两短的变动也很方便不致于牵一发而动全军了;更重要的是将那些广告Banne r、栏目列表、导航等几乎每页的都有的东西只下载一次后就不再下载了。 Iframe标记又叫浮动帧标记你可以用它将一个HTML文档嵌入在一个HTML中显示。它不同于Frame标记最大的特征即这个标记所引用的HT ML文件不是与另外的HT M L文件相互独立显示而是可以直接嵌入在一个HT ML文件中与这个HT ML文件内容相互融合
成为一个整体另外还可以多次在一个页面内显示同一内容而不必重复写内容一个形象的比喻即“画中画“电视。
现在我们谈一下Iframe标记的使用。
Iframe标记的使用格式是:
<Iframesrc="URL"width="x"height="x"scrolling="[OPTION]"frameborder="x"></iframe>src文件的路径既可是HT ML文件也可以是文本、ASP等w idth、 height "画中画"区域的宽与高s crolling:当SRC的指定的HT ML文件在指定的区域不显不完时滚动选项如果设置为NO则不出现滚动条如为Aut o则自动出现滚动条如为Ye s则显示;
FrameBorder区域边框的宽度为了让“画中画“与邻近的内容相融合常设置为0。
比如:
<Iframesrc="http://www.digidc.cn";width="250"height="200"scrolling="no"frameborder="0"></iframe>
二、父窗体与浮动帧之间的相互控制在脚本语言与对象层次中包含Iframe的窗口我们称之为父窗体而浮动帧则称为子窗体弄清这两者的关系很重要 因为要在父窗体中访问子窗体或相反都必须清楚对象层次才能通过程序来访问并控制窗体。
1、在父窗体中访问并控制子窗体中的对象
在父窗体中 I frame即子窗体是doc ument对象的一个子对象可以直接在脚本中访问子窗体中的对象。现在就有一个问题即我们怎样来控制这个Iframe这里需要讲一下Iframe对象。当我们给这个标记设置了ID属性后就可通过文档对象模型DOM对Iframe所含的HT ML进行一系列控制。
比如在examp le.htm里嵌入te s t.htm文件并控制te s t.htm里一些标记对象
<Iframesrc="test.htm"id="test"width="250"height="200"scrolling="no"frameborder="0"></iframe>test.htm文件代码为:
<html>
<body>
<h 1 id="myH 1">hello,myboy</h 1>
</body>
</htm l>
如我们要改变ID号为myH1的H1标记里的文字为hello,mydear则可用:doc ument.myH1.innerT ext="hello,mydear"(其中 doc ument可省)
在examp le.htm文件中 I frame标记对象所指的子窗体与一般的DHT ML对象模型一致对对象访问控制方式一样就不再赘述。
2、在子窗体中访问并控制父窗体中对象
在子窗体中我们可以通过其p arent即父双亲对象来访问父窗口中的对象。
如example.htm
<html>
<bodyonc lic k="alert(tt.myH1.inner HTML)">
<Iframename="tt"src="frame1.htm"w idth="250"height="200"s crolling="no"frameborde r="0"></iframe><h 1 id="myH2">hello,myw ife</h 1>
</body>
</htm l>
如果要在frame 1.htm中访问ID号为myH2中的标题文字并将之改为"hello,myfriend"我们就可以这样写p arent.myH2.innerT ext="hello,myfri end"
这里p arent对象就代表当前窗体(examp le.htm所在窗体)要在子窗体中访问父窗体中的对象无一例外都通过p arent对象来进行。
Iframe虽然内嵌在另一个HTML文件中但它保持相对的独立是一个“独立王国“哟在单一HTML中的特性同样适用于浮动帧中。
试想一下通过Iframe标记我们可将那些不变的内容以Iframe来表示这样不必重复写相同的内容这有点象程序设计中的过程或函数减省了多少繁琐的手工劳动另外至关重要的是它使页面的修改更为可行 因为不必因为版式的调整而修改每个页面你只需修改一个父窗体的版式即可了。有一点要注意Nestscape浏览器不支持Iframe标记但在时下IE的天下这似乎也无大碍广泛采用Iframe标记既为自己(网站)着了想又为网友节省了网费何乐而不为
例子
<iframesrc="页面"width="宽度"heigh t="高度"align="排列可以是left或right,c enter"scrolling="是否有滚动条可以填no或yes"></iframe>
<IFRAMEframeBorder=0frameSpacing=0height=25marginHe ight=0marginWidth=0scrolling=noname=mains rc="bgm/bgm.html"w idth=300></IF RAM E>
2: : : :: : : : : : : : :: : : : : : : : : :: : : : : : : : :: : : : : : : : :: : : : : : : : :: : : : : : : : :: : : : : : : : : :: : : : : : : : :: : :
用了iframe后发现滚动条不漂亮想用2个图片来代替↑↓
应该怎么实现呢
回答
用下列代码替换网页的<title>. .</title>
<SCRIPTLANGUAGE="javascript">
functionscroll(n)
{temp=n;
Out 1.s crollTop=Out 1.s crollTop+temp;if(temp==0)r eturn;setTimeout("scroll(temp)",80);
}
</SCRIPT>
<TABLEWIDTH="330">
<TR>
<TDWIDTH="304"VALIGN="TOP"ROWSPAN="2">
<DIVID=Out 1 STYLE="width:100%;height:100;overflow:hidden;border-style:dashed;border-width:1 px,1 px,1 px,1px;">
文字<BR>文字<BR>
文字<BR>
文字<BR>
文字
<BR>
<BR>
</DIV>
</TD>
<TDWIDTH="14"VALIGN="TOP"><IMGSRC="photo/up0605.gif"WIDTH="14"HEIGHT="20"onmous eover="scroll(-1)"onmouseout="scroll(0)"onmousedown="scroll(-3)"BORDE R="0"ALT="按下鼠标速度会更快 "></TD>
</TR>
<TR>
<TDWIDTH="14"VALIGN="BOTTOM"><IMGSRC="photo/down0605.gif"onmouseover="scroll(1)"onmouseout="s croll(0)"onmous edown="s croll(3)"BORDE R="0"WIDTH="15"HEIGH T="21"ALT="按下鼠标速度会更快 "></TD>
</TR>
</TABLE>
内框架Iframe的使用
使用Iframe可以在一人表格内调用一个外部文件是非常有用的。本网站在很多页面上都使用了iframe效果。
现在我们学一下Iframe标记的使用。
Iframe标记的使用格式是:
<Iframesrc="URL"width="x"height="x"scrolling="[OPTION]"frameborder="x"name="main"></ifram e>
src文件的路径既可是HT ML文件也可以是文本、ASP等w idth、 heigh t "内部框架"区域的宽与高s crolling:当SRC的指定的HT ML文件在指定的区域不显不完时滚动选项如果设置为NO则不出现滚动条如为Aut o则自动出现滚动条如为Ye s则显示;
FrameBorder区域边框的宽度为了让“内部框架“与邻近的内容相融合常设置为0。name:框架的名字用来进行识别。
比如:
<Iframesrc="http://www.ctvbiz.c om/index.asp"w idth="760"heigh t="600"s crolling="Auto"frameborder="0"name="main"></ifram e>
当你想用父框架控制内部框架时可以使用 target="框架的名字"来控制。
设置边框是不否为3维0=否 1=是
HEI GH T,WI D T H
<IFRAMEHEIG HT="31"WIDTH="88"></IFRAM E>
设质边框的宽度和高度
SCROLLING
<IFRAMESCROLLING="NO"></IFRAM E>
是否有滚动条YES,NO,AUT O)
S RC
<IFRAMESRC="GIRL.GIF"></IFRAME>
指定IFRAME调用的文件或图片(HTML,HTM,GIF,JPEG,JPG,PNG,TXT,*.*)
=================透明背景iframe=================
在嵌入iframe的页面中:
程序代码
<iframesrc="abc.htm"name="iframe"w idth="540"height="400"s crolling="Auto"frameborder="0"id="iframe"style="border:0px"allow transparency="true"></ifram e>
在该iframe被嵌入的页面中:
程序代码
<bodyS TYLE="bac kground-c olor:transparent">
=================iframe任何浏览器下自动伸缩=================
<iframemarginwidth="0"marginheight="0"hspac e="0"vspac e="0"frameborder="0"id="frametb"scrolling="no"src="frame.htm"onlo ad="s tyle.w idth=this.c ontentWindow.do c ument.all.formfra.o ffs etWidth;s tyle.heigh t=this.c ontentWindow.doc ument.all.formfra.offs etHeig ht"></ifram e>fr ame.htm
=====================
<html>
<bodyleftmargin="0"topmargin="0">
<table id=formfrawidth=200border=0bgc olor=green>
<tr><t d>
胡东平在线空间
<p/>sfsfere
</t d></tr>
</table>
</body>
</htm l>
执行mainfr am e.htm就可以看到效果了。
套用修改的时候要注意mainfr am e.htm和fr am e.htm里面定义表格的I D然后记得在fr am e语句中修改相对应的调用文件名称和路径并且注意下面这句
========================onlo ad="s tyle.w idth=this.c ontentWindow.do c ument.all.formfra.o ffs etWidth;s tyle.heigh t=this.c ontentWindow.do cument.all.formfra.offs etHeig ht"
=========================
做相应修改
=========================this.c ontentWindow.doc ument.all.调用页面表格ID.o ffs etWidt hthis.c ontentWindow.doc ument.all.调用页面表格ID.offs etHeig ht
二、 ifram e的用法与注意事项
注意两个事项, ifr是一个以存在的iframe的ID和NAME值:
 document.getElementById( “ifr” ) ;
 wi ndow.frames[ “ifr” ] ;
要想使用i f rame内的函数,变量就必须通过第二种方法.因为它取的是一个完整的DOM模型(不知道这样说对不对) .第一种方法只是取出了一个OB JECT而已.
如果只想改变iframe的src或者border , scrolling等attributes(与property不是一个概念,property是不能写在标签内的,比如:scrollHeight, innerHTML等) ,就需要用到第一种方法.如果想取得iframe的页面(不是iframe本身) ,就需要使用第二种方法,因为它取得的是一个完整的DOM模型,比如想得到iframe的document.body的内容,就只能用第二种方法.
还要注意的是,如果在iframe的页面未完全装入的时候,调用iframe的DOM模型,会发生很严重的错误,所以,你要准备一个容错模式.
下面是示例,一个是aa.htm,一个是bb.htm,请先考到本地在运行,原因不用我在说了吧!aa.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w 3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd">
<html xmlns="http://www.w 3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<style type="text/c s s">
<!--body{margin:0px;
}
-->
</s tyle>
</head>
<body>
<iframe id="ifr"name="ifr"width="100%"height="500" src="bb.htm"></iframe>
</body>
</htm l>
<script language="javascript" type="text/javascript">var aa_value="I'm a variant in Top window!";var ifr_id=doc ument.getElement ById("ifr");var ifr_window=window.frames["ifr"];alert("Alert from Top window:Can't get iframe's variant by ifr_id, it will return:"+ifr_id.bb_var);alert("Alert from Top window:Can't get iframe's DOM model by ifr_id,it will return:"+ifr_id.window);alert("Alert from Top window:Get src from id:"+ifr_id.src);alert("Alert from Top window:Get href from window:"+ifr_window.document.loc ation.href);
//由于bb.htm可能还未装载完成,所以,下冇的可能引发错误
//调用ifr ame内的函数ifr_w indow.bb();
//调用ifr ame内的变量alert("Alert from Top window: "+ifr_window.bb_var);
//alert("Alert from Top Window:"+ifr_window.document.body.innerHT ML);function aa(msg){alert("I'm alerting from Top window,and I received a msg:\n"+msg);
}
</script>bb.htm
<!DOCTYPE htmlPUBLI C "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w 3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd">
<html xmlns="http://www.w 3.org/1999/xhtml">
<head>
<title>sub frame</title>
<style type="text/c s s"><!--html,b o dy{margin:0px;w idth:90%;
}
-->
</s tyle>
</head>
<body>
I'm a sub frame!
<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
.. .<br/>
CloudCone 商家在以前的篇幅中也有多次介绍到,这个商家也蛮有意思的。以前一直只有洛杉矶MC机房,而且在功能上和Linode、DO、Vultr一样可以随时删除采用按时计费模式。但是,他们没有学到人家的精华部分,要这样的小时计费,一定要机房多才有优势,否则压根没有多大用途。这不最近CloudCone商家有点小变化,有新人洛杉矶优化线路,具体是什么优化的等会我测试看看线路。内存CPU硬盘流量价格...
HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...
享有云怎么样?享有云是一家新的国内云服务器商家,目前提供国内、香港及海外地区的云服务器,拥有多线路如:BGP线路、CN2线路、高防等云服务器,并且提供稳定、安全、弹性、高性能的云端计算服务,实时满足您的多样性业务需求。目前,美国bgp云服务器,5M带宽,低至20元/月起,270元/年起,首月打折;香港2核2G2M仅50元/月起,450元/年起!点击进入:享有云官方网站地址享有云优惠活动:一、美国B...