• javascript 的一些理解和随笔


    一、iframe里面的页面调用父窗口,左右窗口js函数的方法

    iframe里面的页面调用父窗口,左右窗口js函数的方法
    实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法。
    比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN();
    那么只要在C页面中写如下JS函数就可以了:
    window.parent.AFUN();
    如果AFUN()有参数也可以直接传递合适的参数进去。
    例如:
    修改父窗口控件属性
    window.parent.document.getElementById('frmright').src=window.parent.document.getElementById('frmrightsrc').value;
    调用父窗口函数
    window.parent.POPUP('bigFram');

    父窗口调用iframe子窗口方法
    <iframe name="myFrame" src="child.html"></iframe>
    myFrame.window.functionName();
    iframe子窗口调用父窗口方法
    parent.functionName();


    ////////////////////////////////////
    用js互相调用iframe页面内的js函数
    一个html页面,分成左右两块,左边为导航栏,右边为需要显示的内容,代码如下:
    左栏的代码为:
    <IFRAME frameBorder=0 id=frmTitleLeft name=framLeft src="left.html" style="HEIGHT: 100%; 180px;">
    连接到left.html
    比如右栏中有一个函数right(),我要在左栏的链接中调用right()函数,该如何实现呢
    1,首先leftframe是内嵌在容器页index.html中的,因此需要先返回到index这一级别,并取得rightframe对象
        var frames=window.parent.window.document.getElementById("frameid");
    2,要能执行其页面中的函数,必须要获得window对象,这里有一个重要的对象contentWindow,获得这个对象,即可执行其中的函数了,如
        frames.contentWindow.right();
    以上代码兼容IE6,Firefox3,chrome2.0,均成功通过测试,IE7没试过,不过应该没问题。
    3.例如:
    window.parent.document.getElementById('leftFrame').contentWindow.JSMenu('MenuUl'+Sid);
    window.parent.frames["leftFrame"].JSMenu('MenuUl'+Sid);

    二、javascript--iframe的JS方法,用法!contentWindow 、parent、top、onload


    一、在使用iframe的页面,要操作这个iframe里面的DOM元素可以用:

    contentWindow、contentDocument(测试的时候chrom浏览器,要在服务器环境下)

     

    1.先获取iframe里面的window对象,再通过这个对象,获取到里面的DOM元素

    例子:

    var ifr = document.getElementById("iframe");
    
    ifr.contentWindow.document.getElementById("XXXXX")
    
    <iframe src="a.html" id=""></iframe>

    ifr.contentWindow 这里,返回的是iframe的window对象,所以后面可以接着调用document方法,再接着调用getElementByTagName。那么就可以对iframe里面的元素进行操作了。

     

    二、在iframe本页面,要操作这个iframe的父页面的DOM元素(即嵌套这个iframe的页面)可以用:

    window.parent、window.top(这里的TOP是获取的顶层,即有多层嵌套iframe的时候使用)

    var ifr = document.getElementByTagName("iframe");
    
    ifr.parent.document.getElementById("XXXXX")
    
    <iframe src="a.html" id=""></iframe>

     三、onload事件

    非IE下用法

    ifr.onload = function(){
       //SOMETHING
    }

    IE下,需要绑定

    ifr.attachEvent("onload",function(){
    
    //something
    
    })

    三、Js中的window.parent ,window.top,window.self详解


    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口。

     window : 代表当前窗体
    self : 也代表当前窗体

    window.self


    功能:是对当前窗口自身的引用。它和window属性是等价的。

    语法:window.self

    注:window、self、window.self是等价的。

     

    window.top

    功能:返回顶层窗口,即浏览器窗口。

    语法:window.top

    注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。

     

    window.parent

    功能:返回父窗口。

    语法:window.parent

    注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。

    在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。

     

    判断当前窗口是否在一个框架中:

    <script type="text/javascript">
    var b = window.top!=window.self;
    document.write( "当前窗口是否在一个框架中:"+b );
    </script>

    你应当将框架视为窗口中的不同区域,框架是浏览器窗口中特定的部分。一个浏览器窗口可以根据你的需要分成任意多的框架,一个单个的框架也可以分成其它多个框架,即所谓的嵌套框架。


  • 相关阅读:
    教务管理系统维护日志
    在centOS服务器上部署Discuz!
    iphone5s support.apple com/iphone/restore怎么办
    常见Java面试题
    Mac版免破解office 2011真情放送/Mac版navicat prenium 面破解
    VMware Workstation 12序列号: 5A02H-AU243-TZJ49-GTC7K-3C61N
    centos7搭建docker环境
    加密算法简介
    Hash算法简介
    empty()和size() == 0有区别吗
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3424212.html
Copyright © 2020-2023  润新知