【JAVASCRIPT】获取触发MESSAGE事件的源IFRAME

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

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);//获取消息源
});
原文地址:https://www.cnblogs.com/wuhairui/p/7207899.html