javascript 的一些理解和随笔

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

 

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');
html

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


////////////////////////////////////
用js互相调用iframe页面内的js函数
一个html页面,分红左右两块,左边为导航栏,右边为须要显示的内容,代码以下:
左栏的代码为:
<IFRAME frameBorder=0 id=frmTitleLeft name=framLeft src="left.html" style="HEIGHT: 100%; width: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);
chrome

2、javascript--iframe的JS方法,用法!contentWindow 、parent、top、onload
浏览器


1、在使用iframe的页面,要操做这个iframe里面的DOM元素能够用:服务器

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

 

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

例子:post

var ifr = document.getElementById("iframe");

ifr.contentWindow.document.getElementById("XXXXX")

<iframe src="a.html" id=""></iframe>

ifr.contentWindow 这里,返回的是iframe的window对象,因此后面能够接着调用document方法,再接着调用getElementByTagName。那么就能够对iframe里面的元素进行操做了。测试

 

2、在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>

 

 3、onload事件

非IE下用法

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

 

IE下,须要绑定

ifr.attachEvent("onload",function(){

//something

})

3、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>

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

相关文章
相关标签/搜索