iframe⼦页⾯与⽗页⾯元素的访问以及js变量的访问1、⼦页⾯访问⽗页⾯元素
ElementById('id')和document相关的⽅法都可以这样⽤
2、⽗页⾯访问⼦页⾯元素
var tet = ElementById('iframeId').ElementById("text_inputId");
alert(tet.value);
3、⼦页⾯访问⽗页⾯js变量(注:⽗页⾯的js变量需为全局变量)
⼦页⾯var variable = parent.variableParent  (variableParent为⽗页⾯定义的变量)
4、⽗页⾯访问⼦页⾯js变量
这部分⽬前的解决⽅案是在⽗页⾯设置全局变量,在⼦页⾯进⾏修改后将⼦页⾯的变量赋值给⽗页⾯
5、⼦页⾯访问⽗页⾯js⽅法
window.parent.paramMethod();
6、⽗页⾯访问⼦页⾯js⽅法
iframe⾥⾯的页⾯调⽤⽗窗⼝,左右窗⼝js函数的⽅法
实现iframe内部页⾯直接调⽤该iframe所属⽗窗⼝⾃定义函数的⽅法。
⽐如有A窗⼝,A内有个IFRAME B,B⾥⾯的装载的是C页⾯,这时C要直接调⽤A⾥⾯的⼀个⾃定义函数AFUN();
那么只要在C页⾯中写如下JS函数就可以了:
window.parent.AFUN();
如果AFUN()有参数也可以直接传递合适的参数进去。
例如:
修改⽗窗⼝控件属性
window.ElementById('frmright').src=window.ElementById('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" >
连接到left.html
⽐如右栏中有⼀个函数right(),我要在左栏的链接中调⽤right()函数,该如何实现呢
1,⾸先leftframe是内嵌在容器页index.html中的,因此需要先返回到index这⼀级别,并取得rightframe对象
var frames=window.parent.ElementById("frameid");
2,要能执⾏其页⾯中的函数,必须要获得window对象,这⾥有⼀个重要的对象contentWindow,获得这个对象,即可执⾏其中的函数了,如
以上代码兼容IE6,Firefox3,chrome2.0,均成功通过测试,IE7没试过,不过应该没问题。
3.例如:
window.ElementById('leftFrame').contentWindow.JSMenu('MenuUl'+Sid);
window.parent.frames["leftFrame"].JSMenu('MenuUl'+Sid);
////////////////////////////////////////
js获取子元素还有下⾯⼀种,没测试过
并不是象通常那样st();——test()为iframe⾥的⽅法。因为要写⼀个通⽤⼀点的东西,所以是从⼀个配置⽂件中动态获取到iframe的id。然后调⽤⾥⾯的⽅法。可是不成功。相烦帮忙看⼀看。代码如下:
<iframe  id="iframe1"></iframe>
var  cs  =  document.all;
for(var  i  =  0;  i  <  cs.length;  i++)  {
if(UpperCase()  ==  "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()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。