The example in this article describes how a JavaScript child window calls parent window variables and functions. Share it with everyone for your reference. The details are as follows:
Example 1: The child window is a newly opened window
Parent window:
<!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</title> <script type="text/javascript"> var parentPara='parent'; function parentFunction() { alert(parentPara); } </script> </head> <body> <button onclick="parentFunction()">显示变量值</button> <button onclick="window.open('child.html')">打开新窗口</button> </body> </html>
Subwindow:
<!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</title> <script type="text/javascript"> function modify() { opener.parentPara='child'; } </script> </head> <body> <button onclick="opener.parentFunction()">调用父页面的方法</button> <button onclick="modify()">更改父页面中变量的值</button> </body> </html>
As long as you add opener in front of variables and functions, you can access the specified resources.
But when the parent window is closed, an error will be reported when using this method: "The called object has disconnected from its client."
Example 2: The child page is an iframe of the parent page
Parent page:
<!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</title> <script type="text/javascript"> function fill() { //alert(frame1.window.childPara); //显示frame1内的变量值 var str=document.getElementById('txt1').value; //获得文本框内输入的值 frame1.window.div1.innerHTML=str; //将值填入子页面的一个div中 } </script> </head> <body> <div style="background-color:yellow;width:300px;height:300px;"> 父页面 <iframe id="frame1" src="child.html" frameborder="0" scrolling="no" width="120px" height="120px"></iframe> <br/><br/><br/><br/> <input id="txt1" type="text"/> <button onclick="fill()">将文本框内值填充入子界面</button> </div> </body> </html>
Sub-page:
<!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</title> <script type="text/javascript"> function fun() { parent.fill(); } </script> </head> <body> <div style="background-color:lightblue;width:100px;height:100px;"> <b>子页面</b><br/> <a href="#" onclick="fun()">同父页面按钮</a> <div id="div1" style="color:red;"> </div> </div> </body> </html>
Little discovery: When the parent page is refreshed, the iframe in it will also be refreshed; when the iframe is refreshed, the parent page will not be refreshed.
I hope this article will be helpful to everyone’s JavaScript programming.