如何从顶部窗口触发事件到iframe?

时间:2014-09-26 15:02:35

标签: javascript jquery events

我知道我只能在一个窗口中触发事件。但我试过这样的: 在顶部窗口我写道:

jQuery('#some-popup').trigger('opened-popup');

在iframe我写道:

$("#some-popup", window.parent.document).bind('opened-popup', function () {
           alert('ok');
});

我做错了什么?

2 个答案:

答案 0 :(得分:2)

在相框中试试这个:

而不是

$("#some-popup", window.parent.document).bind('opened-popup', function () {
       alert('ok');
});

这样做

parent.$("#some-popup", window.parent.document).bind('opened-popup', function () {
       alert('ok');
});

有两个jQuery实例,一个用于父级,一个用于框架。你在父亲的jQuery上发布了这个事件,但在框架自己的jQuery中附加了它。如果你附加到子节点中父节点的jQuery,bind(或.on())应该可以工作。

编辑:你可能不需要" window.parent.document"在附加到父亲的事件后绑定。

答案 1 :(得分:0)

如果你想避免"问题"有窗口/ iframe之间的可访问性/可见性我建议你easyXDM

  

easyXDM是一个Javascript库,可以让您作为开发人员使用   轻松解决同源的限制   策略反过来又很容易沟通和公开javascript   API跨域边界。