html页面中iframe嵌套页面的父页面和子页面js方法互相调用

时间:2022-12-21 11:19:16

我们在写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>