先讓發送源獲取焦點,然后獲取焦點元素。
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);//獲取消息源 });