咨询热线:4006-75-4006

售前:9:00-23:30    备案:9:00-18:00    技术:7*24h

JAVASCRIPT获取触发MESSAGE事件的源IFRAME

2019-06-30 00:04:04 6572次

翻了翻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);//获取消息源

});

 


首页
最新活动
个人中心