iframe里面的页面调用父窗口,左右窗口js函数的方法
?
myFrame.window.functionName();iframe子窗口调用父窗口方法
parent.functionName();
////////////////////////////////////
用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);
////////////////////////////////////////
还有下面一种,没测试过
并不是象通常那样iframeName.test();——test()为iframe里的方法。因为要写一个通用一点的东西,所以是从一个配置文件中动态获取到iframe的id。然后调用里面的方法。可是不成功。相烦帮忙看一看。代码如下:??
? <iframe?? id="iframe1"></iframe>??
???
? var?? cs?? =?? document.all;??
??????????? for(var?? i?? =?? 0;?? i?? <?? cs.length;?? i++)?? {??
??????????????????? if(cs.tagName.toUpperCase()?? ==?? "IFRAME")?? {??
??????????????????????????? if(cs.id?? ==?? "iframe1")?? {??
??????????????????????????????????? alert(frmDealData);??
??????????????????????????????????? alert(cs);??
??????????????????????????????????? document.frames.iframe1.setScreenletStatus(iframeLayoutLvl);??
??????????????????????????????????? document.frames.cs.setScreenletStatus(iframeLayoutLvl);??
??????????????????????????? }??
??????????????????? }??
??????????? }??
? 第一句调用是成功的。??
? 可第二句就不成功。??
? 如果在只能取得cs对象的情况下,该怎么调用iframe里的方法?谢谢?
------------------------------------
不要用id,用name??
window.frames[cs].fun()