子iframe 怎么访问 父的 iframe方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子iframe 怎么访问 父的 iframe方法相关的知识,希望对你有一定的参考价值。

HTML语法:<iframe name="myFrame" src="child.html"></iframe>

2、父窗口调用子窗口:myFrame.window.functionName();

3、子窗品调用父窗口:parent.functionName();
简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行

4、父窗口页面源码:
复制代码 代码如下:
<html>
<head>
<script
type="text/javascript">
function say()

alert("parent.html------>I'm at parent.html");

function
callChild()

//document.frames("myFrame").f1();

myFrame.window.say();

</script>
</head>

<body>
<input type=button value="调用child.html中的函数say()"
onclick="callChild()">
<iframe name="myFrame"
src="child.html"></iframe>
</body>
</html>
参考技术A jquery、js调用iframe父窗口与子窗口元素的方法

1. jquery在iframe子页面获取父页面元素代码如下:

$("#objid",parent.document)

2. jquery在父页面获取iframe子页面的元素
代码如下:
$("#objid",document.frames('iframename').document)

3.js在iframe子页面获取父页面元素代码如下:

indow.parent.document.getElementByIdx_x("元素id");

4.js在父页面获取iframe子页面元素代码如下:

window.frames["iframe_ID"].document.getElementByIdx_x("元素id");

5.子类iframe内调用父类函数:

window.parent.func();

iframe子页面在跨域情况下使用父页面的方法

参考技术A

项目中,iframe内部的子页面要使用父页面的方法,如果不跨域,那么直接通过parent.func()就可以直接调用了。但如果子页面和父页面跨域了,就需要用html5的postMessage方法来进行通信和传输数据,间接性的在父页面调用方法。
以子页面向父页面通信为例:
子页面中

父页面中这样接收

ie8兼容
1、绑定监听事件需兼容
由于ie8中不兼容addEventListener()这种事件监听方式,所以需要这样来绑定

2、子页面向父页面传的数据为json字符串,即JSON.stringify后的字符串内容
需要用window.eval() 或 new Function() 的方式解析 JSON 格式字符串。

以上是关于子iframe 怎么访问 父的 iframe方法的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 学习笔记四(跨文档消息通信)

iframe子页面js调用父页面中的控件报“拒绝访问”是啥原因,怎么解决?先声明不是跨域问题

iframe子页面访问过后相应js 缓存在浏览器,怎么不缓存

iFrame的问题

iframe子页面样式怎么在父页面修改

iframe 父页面调用子页面方法