加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

从iframe触发jQuery事件

发布时间:2020-12-14 21:43:18 所属栏目:资源 来源:网络整理
导读:这是场景,我有一个事件发生在一个iframe之内,直到现在一切都很好。我刚刚遇到了一个问题,我想将一个事件从iframe发送到父进程。 我正在使用它来触发iframe中的事件: $('body',window.parent.document).trigger('eventName');//and I've also tried$(wind
这是场景,我有一个事件发生在一个iframe之内,直到现在一切都很好。我刚刚遇到了一个问题,我想将一个事件从iframe发送到父进程。

我正在使用它来触发iframe中的事件:

$('body',window.parent.document).trigger('eventName');
//and I've also tried
$(window.parent.document).find('body').trigger('eventName');

然后在父母页面中,我正在听这样的事件:

$('body').bind('eventName',myFunction)

我知道脚本得到触发器,因为我在触发器之前和之后卡住了一个console.log。 iframe在同一个域,所以没有问题。

我可以直接在父页面上调用一个函数,如下所示:window.parent.functionName,但我想知道是否可以使用基于事件的解决方案。

解决了

@cwolves的答案是非常好的:

parent.$('body').trigger( 'eventName' );

解决方法

如果您在父框架中加载了jQuery,请尝试:
parent.$('body').trigger( 'eventName' );

如果没有,尝试这个,我不知道它是否会工作,但我只是看着jQuery源码,并认为它可能:

var pBody = $( parent.document.body );
pBody.trigger( 'eventName',pBody.data() );

(当绑定eventName时也做同样的事情)据我所知,这个问题是jQuery正在使用本地页面的数据,这是因为它正在尝试从另一个框架加载数据而引起问题。换句话说,这是一个混乱,但在.bind,.trigger等中接受了数据参数。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读