大红黑是我的台式机,由于之前的机箱插口坏了,于是我想顺便改装一下。
这次换了机箱,主板,电源。加了显卡(上一篇文章的),pci-e接口的无线模块(wifi-bluetooth),一个排气风扇。
本来这篇文章应该半个月前就能发了,结果出了不少状况。显卡被我撞坏了一次,找修的办法折腾了好久。主板因为我选择不买新的,于是在一家店耗了很久,因为拿到的板子总是有各种问题,寄来寄去好几次,一寄就是三四天。然后陆续买了风扇和冷排。
大红黑是我的台式机,由于之前的机箱插口坏了,于是我想顺便改装一下。
这次换了机箱,主板,电源。加了显卡(上一篇文章的),pci-e接口的无线模块(wifi-bluetooth),一个排气风扇。
本来这篇文章应该半个月前就能发了,结果出了不少状况。显卡被我撞坏了一次,找修的办法折腾了好久。主板因为我选择不买新的,于是在一家店耗了很久,因为拿到的板子总是有各种问题,寄来寄去好几次,一寄就是三四天。然后陆续买了风扇和冷排。
翻了翻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);//获取消息源 });