与 iFrame 内容通信

Communicating with iFrame contents

本文关键字:通信 iFrame      更新时间:2023-09-26

有一个包含整个文档(<html> to </html>)的 iFrame 。本文档还包含一些script标签。我的问题是,我们可以调用iFrame中存在的脚本的功能吗?

如果iframe导航相同的域,那么您可以使用如下内容:

var result = document.getElementById("frame").contentWindow.func(args);
console.log(result);

演示:http://jsfiddle.net/Mnt3e/

您可以通过 contentDocument 属性访问 iframe 的内容,但前提是它属于同一域。

如果框架来自不同的域,并且可以控制源代码,您可以使用postMessage在框架/文档之间进行通信。

对于浏览器支持,这里有一些信息,我们确实有一个jquery插件,其中包含不支持postMessage的浏览器的回退。