我有一个html页面,我基本上有这个布局:
<html>
<body>
<!-- iFrame A -->
<iframe></iframe>
<!-- iFrame B -->
<iframe></iframe>
</body>
</html>
在IFRAME“B”中,我想在IFRAME“A”中调用一个js函数,它最终会改变window.location属性并重定向页面。我也可以使用jquery,但一直无法找到在相邻帧中调用某些内容的方法。
有什么建议吗?
答案 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.从那里调用你的函数。