iframe子页面与父页面元素的访问以及js变量的访问

一、子页面访问父页面元素 html

 

parent.document.getElementById('id')和document相关的方法均可以这样用 

 

二、父页面访问子页面元素 chrome

 

document.getElementById('iframeId').contentDocument.getElementsByTagName('table'); contentDocument后可使用document相关方法 
var tet = document.getElementById('iframeId').contentWindow.document.getElementById("text_inputId"); 
alert(tet.value);

 

三、子页面访问父页面js变量(注:父页面的js变量需为全局变量) 函数

 

子页面var variable = parent.variableParent   (variableParent为父页面定义的变量) 

 

四、父页面访问子页面js变量 测试

这部分目前的解决方案是在父页面设置全局变量,在子页面进行修改后将子页面的变量赋值给父页面 

五、子页面访问父页面js方法spa

window.parent.paramMethod();

六、父页面访问子页面js方法code

document.getElementById('iframeId').contentWindow.iframeMethod(param);

 

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

父窗口调用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.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);blog

////////////////////////////////////////
还有下面一种,没测试过get

并非象一般那样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()

相关文章
相关标签/搜索