经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
关于使用iframe的父子页面进行简单的相互传值
来源:cnblogs  作者:笑傲人生zxy  时间:2019/8/15 12:11:53  对本文有异议

当一个页面使用了iframe作为嵌套时,如何想要将父页面的数据传给iframe子页面,那iframe所指向的呢个子页面是怎么获取呢,又或者子页面的数据要给父页面使用,那么父页面又如何获取子页面的数据呢?下面根据这种情况作了一个简单的demo案例:

父页面是parentPage.html,子页面是childPage.html。

1、情况一:父页面获取子页面传入的数据(子页面给父页面传值)

父页面:

  1. //获取子页面传入的数据
  2. function GetChildValue(obj){
  3. document.getElementById('texts').innerText = obj;
  4. }

子页面:

  1. //给父页面传数据
  2. var txt = '我是子界面主动传值给父界面的数值';
  3. parent.GetChildValue(txt); //GetValue是父界面的Js 方法

 

2、情况二:子页面获取父页面的数据(父页面给子页面传值)

父页面:

  1. //给子页面传入数据
  2. function toChildValue(){
  3. var txt = '这是父页面给子页面的数据';
  4. return txt;
  5. }

子页面:

  1. //获取父页面传来的数据
  2. var getParentVule = window.parent.toChildValue();
  3. console.log(getParentVule)

具体传值的数据根据自己的项目要求修改,下面放上两个页面的完整代码:

父页面parentPage.htm

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>父页面</title>
  6. <style type="text/css">
  7. .box{
  8. width: 600px;
  9. height: 400px;
  10. margin: 10px auto;
  11. }
  12. h3{
  13. font-size: 16px;
  14. }
  15. .cont{
  16. width: 100%;
  17. }
  18. .cont h4{
  19. font-size: 14px;
  20. }
  21. .cont #texts{
  22. width: 100%;
  23. line-height: 22px;
  24. font-size: 13px;
  25. color: #2E2D3C;
  26. }
  27. iframe{
  28. /*只是隐藏,但任然保留DOM结构*/
  29. visibility: hidden;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="box">
  35. <h3>这是父页面</h3>
  36. <div class="cont">
  37. <h4>这是从子页面传入的数据:</h4>
  38. <div id="texts"></div>
  39. <iframe src="childPage.html" width="1px" height="1px" class="myIframe" name="myIframe"></iframe>
  40. </div>
  41. </div>
  42. <script type="text/javascript">
  43. //获取子页面传入的数据
  44. function GetChildValue(obj){
  45. document.getElementById('texts').innerText = obj;
  46. }
  47. //给子页面传入数据
  48. function toChildValue(){
  49. var txt = '这是父页面给子页面的数据';
  50. return txt;
  51. }
  52. </script>
  53. </body>
  54. </html>

 

 子页面childPage.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>子页面</title>
  6. <style type="text/css">
  7. .box{
  8. width: 600px;
  9. height: 400px;
  10. margin: 10px auto;
  11. }
  12. h3{
  13. font-size: 16px;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="box">
  19. <h3>这是子页面</h3>
  20. </div>
  21. <script type="text/javascript">
  22. //给父页面传数据
  23. var txt = '我是子界面主动传值给父界面的数值';
  24. parent.GetChildValue(txt); //GetValue是父界面的Js 方法
  25. //获取父页面传来的数据
  26. var getParentVule = window.parent.toChildValue();
  27. console.log(getParentVule)
  28. </script>
  29. </body>
  30. </html>

 

原文链接:http://www.cnblogs.com/zhongxiaoyou/p/11344939.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号