父页面 Father.htm 源码如下: 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>全面兼容的Iframe 与父页面交互操作</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <script language="javascript" type="text/javascript">
  7. function fatherFunction() {
  8. alert("我是父页面的方法,\n调用成功!");
  9. }
  10. /*
  11. *父页面通过 iframe Name 调用子页面的函数或者获取子页面元素的内容
  12. */
  13. function one() {
  14. var ifreame = window.frames["childPage1"];
  15. if (ifreame != null && ifreame != undefined) {
  16. ifreame.childFunction();
  17. }
  18. }
  19. function two() {
  20. var ifreame = window.frames["childPage1"];
  21. if (ifreame != null && ifreame != undefined) {
  22. var myValue = ifreame.document.getElementById("childPage");
  23. alert(myValue.innerHTML);
  24. }
  25. }
  26. /*
  27. *父页面通过 iframe Id 调用子页面的函数或者获取子页面元素的内容
  28. */
  29. function three() {
  30. var ifreame = window.top.document.getElementById("childPage2").contentWindow;
  31. if (ifreame != null && ifreame != undefined) {
  32. ifreame.childFunction();
  33. }
  34. }
  35. function four() {
  36. var ifreame = window.top.document.getElementById("childPage2").contentWindow;
  37. if (ifreame != null && ifreame != undefined) {
  38. var myValue = ifreame.document.getElementById("childPage");
  39. alert(myValue.innerHTML);
  40. }
  41. }
  42. </script>
  43. </head>
  44. <body style="margin: auto;">
  45. <fieldset>
  46. <legend>父页面通过 iframe Name 调用子页面的函数或者获取子页面元素的内容</legend>
  47. <dl>
  48. <dt>
  49. <input type="button" value="通过ifrme Name 调用子页面的脚本" onclick="one();" />
  50. <input type="button" value="通过ifrme Name 获取子页面元素的内容" onclick="two();" />
  51. </dt>
  52. <dt>
  53. <div style="width: 100%; height: 250px;">
  54. <iframe name="childPage1" src="Child1.htm" frameborder="0" scrolling="no" width="100%"
  55. height="250"></iframe>
  56. </div>
  57. </dt>
  58. </dl>
  59. </fieldset>
  60. <br />
  61. <fieldset>
  62. <legend>父页面通过 iframe Id 调用子页面的函数或者获取子页面元素的内容</legend>
  63. <dl>
  64. <dt>
  65. <input type="button" value="通过ifrme Name 调用子页面的脚本" onclick="three();" />
  66. <input type="button" value="通过ifrme Name 获取子页面元素的内容" onclick="four();" />
  67. </dt>
  68. <dt>
  69. <div style="width: 100%; height: 250px;">
  70. <iframe id="childPage2" src="Child2.htm" frameborder="0" scrolling="no" width="100%"
  71. height="250"></iframe>
  72. </div>
  73. </dt>
  74. </dl>
  75. </fieldset>
  76. </body>
  77. </html>
 
嵌入的 iframe 子页面 Child1.htm 源码如下: 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>全面兼容的Iframe 与父页面交互操作</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <script language="javascript" type="text/javascript">
  7. function childFunction() {
  8. alert("我是子页面,\n我需要使用 Iframe Name 调用!");
  9. }
  10. </script>
  11. </head>
  12. <body style="margin: auto; background-color: Gray; color: Red;">
  13. <input type="button" value="调用父页面的脚本" onclick="javascript:window.parent.fatherFunction();" /><br />
  14. <div id="childPage">
  15. 我是子页面,我需要使用 Iframe Name 调用!</div>
  16. </body>
  17. </html>

嵌入的 iframe 子页面 Child2.htm 源码如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>全面兼容的Iframe 与父页面交互操作</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" language="javascript">
  7. function childFunction() {
  8. alert("我是 iframe 嵌入的子页面,\n需要通过 Iframe Id 调用!");
  9. }
  10. </script>
  11. </head>
  12. <body style="margin: auto; background-color: Gray; color: Red;">
  13. <input type="button" value="调用父页面的脚本" onclick="javascript:window.parent.fatherFunction();" /><br />
  14. <div id="childPage">
  15. 我是 iframe 嵌入的子页面,需要通过Id调用!
  16. </div>
  17. </body>
  18. </html>

效果图如下:

 

全面兼容的Iframe 与父页面交互操作的更多相关文章

  1. bug:页面交互操作引发的问题

    最近在测试一些h5页面,突然悟到一些测试点 需求点: 用户可以在页面领取礼物,领取的礼物在页面底部展示,用户点击礼物可调起分享弹窗,礼物超过一屏可左右滑动, bug的表现形式: 仅当礼物超过一屏时(一 ...

  2. iframe与父页面中JS执行顺序控制

    同事遇到了一个问题: 父页面中有几个iframe,初衷是父页面的JS通过AJAX获取数据,然后用于初始化iframe页面,可以结果却是有的iframe页面却不能获得数据. [问题根源] 父页面在加载i ...

  3. iframe与父页面传值

    最近做的项目中用到了不少iframe,而且需要实现: 从父页面获取iframe中某个元素的值或则从iframe页面获取其父页面上某个元素的值. 在网上查询了相关东西,后总结如下: (1)父页面获取if ...

  4. js对iframe内外(父子)页面进行操作

    dom对象推荐阅读 怎么对iframe进行操作,1.在iframe里面控制iframe外面的js代码.2.在父框架对子iframe进行操作. 获取iframe里的内容 主要的两个API就是conten ...

  5. 父页面操作iframe子页面的安全漏洞及跨域限制问题

    一.父子交互的跨域限制 同域情况下,父页面和子页面可以通过iframe.contentDocument或者parent.document来交互(彼此做DOM操作等,如父页面往子页面注入css). 跨域 ...

  6. js之iframe子页面与父页面通信

    iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...

  7. IFrame父页面和子页面的交互

    现在在页面里面用到iframe的情况越来越少了,但有时还是避免不了,甚至这些页面之间还需要用js来做交互,那么这些页面如何操作彼此的dom呢?下面将会逐步介绍. 1.父页面操作子页面里面的dom 下面 ...

  8. 嵌入式iframe子页面与父页面js通信方式

    iframe框架中的页面与主页面之间的通信方式根据iframe中src属性是同域链接还是跨域链接,有明显不同的通信方式,同域下的数据交换和DOM元素互访就简单的多了,而跨域的则需要一些巧妙的方式来实现 ...

  9. JS中iframe子页面与父页面之间通信

    iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...

随机推荐

  1. bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...

  2. ansible安装后运行报错cryptography

    [root@kazihuo ~]# ansible all -m ping ERROR! Unexpected Exception, this is probably a bug: (cryptogr ...

  3. CloseableHttpClient与 CloseableHttpResponse应用

    最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有 ...

  4. Spyder docstrings文档字符串的标准

    Spyder docstrings文档字符串的规范 python的docstring 非常重要. 有时候编写一个小函数只需要几行代码就可了. 但是完善的文档很可能比源代码长许多. 特点和标准 docs ...

  5. Ubuntu 14.04 Nvidia显卡驱动安装及设置

    更换主板修复grub 引导后,无法从Nvidia进入系统(光标闪烁), 可能是显卡驱动出了问题. 1. 进入BIOS设置, 从集成显卡进入系统 将显示器连接到集显的VGI口, 并在BIOS中设置用集显 ...

  6. python collection 中的队列

    认识中的队列 在以前的认知里,队列是先进先出,就是一头进,一头出,Queue.而无意间看到了deque 双向队列. 即从该队列的头或者尾部都能插入和移除元素.而起时间复杂度竟然是一样的!O(1),是不 ...

  7. vue-cli环境搭建初探!

    1.先安装nodejs环境 https://npm.taobao.org/mirrors/node (选择版本) 下一步 下一步 默认安装就行 2.检查node和npm的是否成功安装 node -v ...

  8. meterpreter使用

    1.基本命令 background:将meterpreter终端隐藏在后台 sessions:查看已经成功获取的会话,想继续与某会话进行交互使用sessions –i quit:直接关闭当前meter ...

  9. crond检查服务状态

    代码如下: * */1 * * * /etc/init.d/ntpd status;if [ $? -ne 0 ];then /etc/init.d/ntpd start; fi

  10. 在c++中实现反射的初步想法

    最近在思考如何在c++中实现反射.事情的起因是这样的:我们服务器是用c++开发的,如果需要写一些测试用的GM指令的话,需要编写完GM代码后重新编译并且重启进程,工序繁琐且比较耗时.因此就有了想用脚本( ...