如何在通过同一域上的脚本加载的Iframe中调用操作?

时间:2014-12-17 11:52:05

标签: javascript jquery dom iframe same-origin-policy

我在域A中的页面内加载一个脚本(位于域B上):

<div id="page-of-domain-a">
    <script type='text/javascript' src='http://MyDomainB/init.js'></script>
    <div class='element-inside-page-a'></div>
</div>

此脚本将一个iframe(隐藏)预先渲染到域A上的此页面中(好吧,这将预加载域B中该页面的所有元素/图像/脚本)。

在某些时候,使用在init.js中声明的处理程序:

$(document).on("click", ".element-inside-page-a", function (e) {
    e.preventDefault();
    SomeFunctionInsideIFrame();
});

我想在iframe中触发一个动作(例如,“嘿iframe,现在让可见”)。

由于脚本和iframe位于同一个域中,为什么我被相同的源策略阻止了?

如何在域A中触发iframe中的异步事件? (我可以完全访问域B)。域B代理?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

对于页面和iframe之间的通信,请参阅此文

http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage