如何在相邻的iframe中调用javascript函数

时间:2010-09-11 23:56:00

标签: javascript jquery iframe

我有一个html页面,我基本上有这个布局:

<html>
<body>

<!-- iFrame A -->
<iframe></iframe>

<!-- iFrame B -->
<iframe></iframe>
</body>
</html>

在IFRAME“B”中,我想在IFRAME“A”中调用一个js函数,它最终会改变window.location属性并重定向页面。我也可以使用jquery,但一直无法找到在相邻帧中调用某些内容的方法。

有什么建议吗?

3 个答案:

答案 0 :(得分:7)

假设所有内容都位于同一个域中,并且您有两个带有ID“iframe-a”和“iframe-b”的iframe,并且父级中包含jQuery:

在第A帧:

function foo() {
  alert("foo from frame A");
}

从第b帧开始:

window.parent.$("#iframe-a")[0].contentWindow.foo();

你应该看到“来自A帧的foo”得到警报。

答案 1 :(得分:1)

在某些浏览器中,只有在命名帧时才会填充window.frames数组,而不是仅使用ID 如果帧被命名并且内容来自相同的源(域,端口,协议),那么 window.frameb.functionName()将触发标准javascript中的函数。请参阅jQuery版本的其他答案

答案 2 :(得分:0)

使用window.parent获取父窗口(主窗口)然后使用父窗口上的window.frames来获取帧B.从那里调用你的函数。