首页 > 语言 > JavaScript > 正文

JavaScript子窗口调用父窗口变量和函数的方法

2024-05-06 16:24:34
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript子窗口调用父窗口变量和函数的方法,涉及JavaScript窗口调用的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法。分享给大家供大家参考。具体如下:

示例1:子窗口是新打开的窗口

父窗口:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns=" http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <title>parent</title> 
  6. <script type="text/javascript"
  7. var parentPara='parent'
  8. function parentFunction() { 
  9. alert(parentPara); 
  10. </script> 
  11. </head> 
  12. <body> 
  13. <button onclick="parentFunction()">显示变量值</button> 
  14. <button onclick="window.open('child.html')">打开新窗口</button> 
  15. </body> 
  16. </html> 

子窗口:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns=" http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <title>child</title> 
  6. <script type="text/javascript"
  7. function modify() { 
  8. opener.parentPara='child'
  9. </script> 
  10. </head> 
  11. <body> 
  12. <button onclick="opener.parentFunction()">调用父页面的方法</button> 
  13. <button onclick="modify()">更改父页面中变量的值</button>  
  14. </body> 
  15. </html> 

只要在变量和函数前面加opener就可以访问指定资源了。

但是当父窗口被关闭时,再如此使用会报一个错:"被调用的对象已与其客户端断开连接。"

示例2:子页面是父页面的一个iframe

父页面:

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns=" http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <title>parent</title> 
  6. <script type="text/javascript"
  7. function fill() { 
  8. //alert(frame1.window.childPara); //显示frame1内的变量值 
  9. var str=document.getElementById('txt1').value; //获得文本框内输入的值 
  10. frame1.window.div1.innerHTML=str; //将值填入子页面的一个div中 
  11. </script> 
  12. </head> 
  13. <body> 
  14. <div style="background-color:yellow;width:300px;height:300px;"
  15. 父页面 
  16. <iframe id="frame1" src="child.html" frameborder="0" scrolling="no" width="120px" height="120px"></iframe> 
  17. <br/><br/><br/><br/> 
  18. <input id="txt1" type="text"/> 
  19. <button onclick="fill()">将文本框内值填充入子界面</button> 
  20. </div> 
  21. </body> 
  22. </html> 

子页面:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns=" http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <title>child</title> 
  6. <script type="text/javascript"
  7. function fun() { 
  8. parent.fill(); 
  9. </script> 
  10. </head> 
  11. <body> 
  12. <div style="background-color:lightblue;width:100px;height:100px;"
  13. <b>子页面</b><br/> 
  14. <a href="#" onclick="fun()">同父页面按钮</a> 
  15. <div id="div1" style="color:red;"
  16. </div> 
  17. </div> 
  18. </body> 
  19. </html> 

小发现:刷新父页面时,其中的iframe也会随之刷新;刷新iframe时,父页面不会刷新。

希望本文所述对大家的JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选