帮助中心 >  技术知识库 >  网站相关 >  程序开发 >  JAVASCRIPT获取触发MESSAGE事件的源IFRAME

JAVASCRIPT获取触发MESSAGE事件的源IFRAME

2019-06-30 00:04:04 6897

翻了翻message事件的属性,没找到可以直接获取事件源iframe的属性,想想也没毛病,毕竟事件也可以是其它窗口post过来的。于是想了个曲线方法。


先让发送源获取焦点,然后获取焦点元素。



window.addEventListener('message',function(msg){

    //做一些事来判断是不是某个iframe发送的消息

    msg.source.focus();

    var sourceFrame=document.activeElement;

});

如果不想影响焦点的话,可以遍历一遍所有的iframe



function findIframe(win){

    var fs=document.querySelectorAll('iframe');

    for(var is=fs.length;is--;){

        if(fs[is].contentWindow==win)

            return fs[is];

    }

}

 

window.addEventListener('message',function(msg){

    var iframe=findIframe(msg.source);//获取消息源

});

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: