我们在写html页面或者说是jsp页面是,有时候需要在一个页面中使用iframe标签嵌套另一个页面,而两个页面有些数据需要交互,这个时候就会用到js技术,互相调用方法,
当我们在父页面中需要调用iframe标签中嵌入的子页面中的js方法时,可以使用:
document.getElementById(iframe的id).contentWindow.childtest();
注:
iframe的id:指的是需要调用的子页面的iframe的id;
childtest():是子页面中的js方法,夫页面就是要调用子页面的这个方法。
当在子页面中需要调用父页面中的方法时,使用如下js:
window.parent.parenttest();
注:
parenttest():是父页面中的js方法。
下面是一个具体的例子:
父页面fatherPage.html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Parent Page</title> <script language="javascript" type="text/javascript"> function parenttest() { alert("这是父页面的方法!"); } function btnClick() { alert("启动调用子页面的方法"); document.getElementById("childframe").contentWindow.childtest(); } </script> </head> <body> <div style="margin:auto;"> <h1>This is the Parent Page.</h1> <input type="button" value="调用子页面的方法" onclick="btnClick()"/> </div> <div style="margin:auto;"> <iframe style="width:300px; height:300px;" id="childframe" src="childPage.html"></iframe> </div> </body> </html>
子页面childPage.html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Child Page</title> <script language="javascript" type="text/javascript"> function childtest() { alert("这是子页面的方法!"); } function btnClick() { alert("启动调用父页面的方法"); window.parent.parenttest(); } </script> </head> <body> <div style="margin:auto;"> <h1>This is the Child Page.</h1> <input type="button" value="调用父页面的方法" onclick="btnClick()"/> </div> </body> </html>