十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

窗口关系及框架frame-Javascript

百恒网络 2013-04-25 2192

如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中。在frames集合中,可以通过数值索引(从0开始,从左至右,从上到下)或者框架名称来访问相应的window对象。每个window对象都有一个name属性,其中包含框架的名称。接下来由南昌网站设计公司网络工程师提供一个包含框架的页面实例:
      <html>
      <head>
      <title>框架实例</title>
      </head>
      <frameset rows="160,*">
      <frame src="frame .htm"name="topFrame" />
      <frameset cols='50%, 50%">
      <frame src="anotherframe. htm" name="leftFrame" />
      <frame src="yetanotherframe. htm" name="rightFrame" />
      </frameset>
      </frameset>
      </html>
以上代码创建了一个框架集,其中一个框架居上,两个框架居下。对这个例子而言,可以通过window. frames[o]或者window.f rarnes["topFrame"]来引用上方的框架。不过,恐怕你最好使用top而非window来引用这框架(例如,通过top.fraInes[o])。
   我们知道,top对象始终指向最高(最外)层的框架,也就是浏览器窗口。使用它可以确保在一个框架中正确地访问另一个框架。因为对于在一个框架中编写的任何代码来说,其中的window对象指向的都是那个框架的特定实例,而非最高层的框架。下图展示了在最高层窗口中,通过代码来访向前面例子中每个框架的不同方式。
   与top相对的另一个window对象是parent。顾名思义,parent(父)对象始终指向当前框架的直接上层框架。在某些情况下,parent有可能等于top;但在没有框架的情况下,parent 一定等于top(此时它们都等于window)。再看下面的例子:
       <html>
      <head>
      <titLe>框架实例</title>
      </head>
      <frameset rows=’1 100.*">
      <frame src="frame. htm" name="topFrame" />
      <frameset cols="50%, 50%">
      <frame src="ano therfraame.htm"name="leftFrame"/>
      </frameset>
      </frameset>
      < /html>
这个框架集中的一个框架包含了另一个框架集,该框架集的代码如下所示:
      <html>
      <head>
      <title>框架实例</title>
      </head>
      <frameset cols='50%, 50%'>
      <frame src="red. htm"name="redFrame"/>
      <frame src="blue. htm"name="blueFrame" />
      </frameset>
      </html>
浏览器在加载完第一个框架集以后,会继续将第二个框架集加载到rightFrame中。如果代码位于redFrame(或blueFrame)中,那么parent对象指向的就是rightFrame,可是,如果代码位于topFrame中,则parent指向的是top,因为topFrame的直接上层框架就是最外层框架。展示了在将前面例子加载到浏览器之后,不同window对象的值。
    南昌网络公司工程师提醒广大站长要注意,除非高层窗口是通过windows.open()打开的,否则其window对象的name属性不会包含任何值.
    与框架有关的最后一个对象是self,它始终指向window,实际上,self和window对象可以互相换使用.引入这些对象都是self对象的目的只是为了与top和parent对象对应起来,因此它不格外包含其他值.
    所有这些对象都是window对象的属性,可能通过window.parent,window.top等形式来访问.同时也意味着可以将不同层次的window对象连缀起来.南昌网站制作公司工程举例:window.parent.parent.frames[0].
    在使用框架的情况下,浏览器中会存在多个Global对象.在每个框架中定义的全局变量会自动成为框架中window对象的属性,由于每个window对象都包含原生类型的构造函数,因此每个框架都有一套自己的构造函数,这些构造函数一一对应,但并不相等,例如,top.object并不等于top.frames[0].Object.这个问题会影响到对跨框架传递的对象使用instanceof操作符.
本文仅限内部技术人员学习交流,不得作于其他商业用途.文章出自:南昌网站建设公司-百恒网络 http://www.jxbh.cn 如转载请注明出处!

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×