ThirdMessage.js
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import Emiter from 'Emiter';
import Loger from 'Loger';
import MessengerMoudle from './MessengerMoudle';
let loger = Loger.getLoger('ThirdMessage');
class ThirdMessage extends Emiter{
constructor(){
super();
// 初始化消息通道
try{
//this.messenger = new Messenger(ThirdMessage.IFRAME_MESSAGE_ID, ThirdMessage.PARENT_MESAGE_ID);
this.messenger = new MessengerMoudle(ThirdMessage.IFRAME_MESSAGE_ID, ThirdMessage.PARENT_MESAGE_ID);
this.messenger.addTarget(window.parent, ThirdMessage.PARENT);
this.messenger.listen(this._reciveParentMessage.bind(this))
loger.log('ThirdMessage');
}catch (err){
console.warn('第三方消息通道创建失败');
}
}
//发送消息给父级页面
sendMessageToParent(_msg){
if(!_msg){
loger.warn('发送的消息内容无效->',_msg);
return;
}
if(this.messenger){
loger.log('发送消息给父级页面->',_msg);
this.messenger.send(_msg);
}
}
//收到父级页面的消息
_reciveParentMessage(_msg){
loger.log('收到父级页面的的消息->', _msg);
if(!_msg){
loger.warn('收到父级页面的的消息->内容无效->',_msg);
return;
}
this._emit(ThirdMessage.RECIVE_MESSAGE,_msg);
}
}
ThirdMessage.prototype.RECIVE_MESSAGE=ThirdMessage.RECIVE_MESSAGE='recive_message';
ThirdMessage.prototype.IFRAME_MESSAGE_ID=ThirdMessage.IFRAME_MESSAGE_ID='xuedianyunIframe';
ThirdMessage.prototype.PARENT_MESAGE_ID=ThirdMessage.PARENT_MESAGE_ID='ParentMessengerChannel';
ThirdMessage.prototype.PARENT=ThirdMessage.PARENT='parent';
export default ThirdMessage;