zoukankan      html  css  js  c++  java
  • frameset的各个frame之间互相访问的方法

    工作中很少使用到frameset,对其了解也是十分有限,这里在网上找了点资料,摘抄了部分内容。

    (1)获得html页面上的frame

      window.frames可以获得本页面上所有frame集合,用法与document.forms,document.imgs的用法相似,这是这里用的是window对象,获取某个框架可以这样做window.frames[0]、window.frames['frameName']、frames['frameName']、frames[0]、self.frames[0],此处self与window等价,相当于本页面的window对象。

    这里也还要再看两个属性,contentWindow、contentDocument两个属性,也是可以用来获取子窗口,框架的window对象的。

    contentWindow 兼容各个浏览器,可取得子窗口的 window 对象。

    contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 对象。

    假如我要刷新本页面中第一个框架的页面,可以怎么做:

    window.frames[0].contentWindow.location.reload();

    (2)父框架调用子框架的变量或函数

    结合上面说的获得页面上的frame,那么调用子框架的变量或是函数可以这样来:

    frames[0].a;
    frames[0].refresh();
    alert(frames[0].location.href);

    这是调用第一个框架里面的a变量和refresh函数。

    (3)子框架调用父框架的变量或函数

    对于子框架调用父框架的这种情况下,window有个属性叫parent,用来调用上层框架的,所以可以这样来:

    window.parent.a;
    window.parent.refresh();

    这是调用子框架调用父框架的a变量和refresh函数。

    (4)兄弟框架之间的调用

     可以通过它们的父框架来相互调用,可以这样做。这样相当于获取了获取到了的window对象,或者是获取了的window对象。

    self.parent.frames['child1'];    //这里相当于获取了child1的window对象了,就可以调用child1里面window的方法了,如js方法
    self.parent.frames['child2'];

    (5)多层框架的调用

    window.frames[0].frames[2];
    window.frames['child_1'].frames['sub_child_3'];

    (6)顶层框架

    首先需要判断是否为顶层框架,也就是根,可以这样来做:

    if(self==window.top){
            //....
    }
    /*window的另外一个属性top,它表示对顶层框架的引用,这可以用来判断一个框架自身是否为顶层框架*/                        
     

    。。。。。。。。。。。。。以上内容均摘抄自http://www.cnblogs.com/wuxiaobin/p/4812732.html 。。。。。。。。。。。。
     
     
  • 相关阅读:
    Gradle gitignore Gradle 模式 上传SVN 要忽略的文件
    加速Android Studio/Gradle构建
    JAVA unicode转换成中文
    进程与线程
    Flask快速入门
    tensorflow入门指南
    BP神经网络与Python实现
    文档数据库MongoDB
    Python虚拟环境virtualenv
    Python爬虫框架Scrapy
  • 原文地址:https://www.cnblogs.com/zeng1994/p/7444950.html
Copyright © 2011-2022 走看看