网上别人资源,自己记录防止忘记
该方案使用Messager 做为跨域的信使,
1、主页面使用iframe对子页面进行加载
<iframe id="iframe1" src="http://www.test.com/child1.html" width="550px" height="300px"></iframe>
2、在主页面中添加js
(1)构造信使Messager
var messenger = new Messenger('child', 'MessengerDemo');
(2)在父页面添加对子页面消息的监听,
messenger.listen(function (msg) {
//具体对接收到的页面的消息的处理
});
(3)要向子页面发送消息,就要先添加子页面的Window的对象
messenger.addTarget(iframe1.contentWindow, 'iframe1');
3、在子页面中添加js,在子页面中添加的js也和父页面中相同
注意:
在父页面中添加目标(messenger.addTarget(object,"Name"))一定要保证object是有效的,如
messenger.addTarget(document.getElementById('iframe1').contentWindow, "Name");
这局话一定要放在<iframe id="iframe1" src="http://www.test.com/child1.html" width="550px" height="300px"></iframe>之后
将主页面和子页面进行通信是,子页面中messenger.addTarget(object,"Name")和父页面中的new Messenger('Name', 'MessengerDemo')中Name必须相同;
父页面中的messenger.addTarget(object,"Name")和子页面中的new Messenger('Name', 'MessengerDemo')的Name必须相同才能进行消息传递。