关于JS 调用 iframe的问题。

JavaScript0103

关于JS 调用 iframe的问题。,第1张

调用格式为:子框架ID.函数名():

如<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方法