如<iframe src='../test.html' id='frame1'></iframe>
调用格式应为:frame1.test(),光用test()显然是找不到的,另外子窗体中定义的全局变量也可以用类似格式。
IE8测试通过,其它不知。
1、在父页面访问Iframe子窗体的txtAddress控件window.frames["ifrMapCompanyDetails"].document.all("txtAddress").value = '地址'
2、在Iframe子窗体1访问父页面的TextBox1控件 , 子窗体1把值赋给子窗体2的某个控件
string strValue = "从子窗体传递给父页面的值"
下面是在Page_Load事件里面调用的,当然可以写在javascript脚本里面
this.Response.Write("<script>parent.document.all('TextBox1').value = '" + strValue + "'</script>")
this.Response.Write("<script>if( parent.document.all('TextBox2').value = '0')parent.document.all('TextBox1').value = '44'</script>")
3、子窗体访问父窗体中的全局变量:
parent.xxx
4、在Iframe子窗体1访问子窗体2的txtAddress控件 子窗体1把值赋给子窗体2的某个控件
window.parent.frames["ifrMapCompanyDetails"].document.all("txtAddress").value = '地址'
父窗体提交两个Iframe子窗体
window.frames["ifrMapCompanyDetails"].Form1.submit()
window.frames["ifrMapProductInfoDetails"].Form1.submit()
Iframe子窗体 调用父页面的javascript事件
window.parent.XXX()
//父页面调用当前页面中IFRAME子页面中的脚本childEvent
function invokechildEvent()
{ var frm = document.frames["ifrChild1"].childEvent()}
或者调用当前页面中第一个IFRAME中的脚本childEvent
{ var frm = document.frames[0]frm.childEvent()}
//子页面调用父窗体的某个按钮的按钮事件
window.parent.Form1.btnParent.click()
父页面调用子窗体的某个按钮的按钮事件
window.frames['ifrChild1'].document.all.item("btnChild3").click()
//jquery 部分:
1.在父窗口中操作 选中IFRAME中的所有单选钮
$(window.frames["iframe1"].document).find("input[@type='radio']").attr("checked","true")
2.在IFRAME中操作 选中父窗口中的所有单选钮
$(window.parent.document).find("input[@type='radio']").attr("checked","true")
其实iframe是一个独立的页面,与父页面是嵌套但变量独立的关系。所以iframe加载时,如果js方法不涉及操作文档对象(DOM),就直接调用;如果该js方法涉及操作dom,就添加window.onload事件触发函数处理,在处理函数内调用js方法