我正在编写一个使用socket的库。
在MyPeer.js文件中
var MyPeer = (function(){
function MyPeer( opt ){
var self = this;
this.socket = new Socket(opt);
this.socket.on('message', function(data) {
self.emit('onmessage', data);
if ( data.type == 'MYTYPE' ) {
self.emit('myevent', data);
}
});
}
return MyPeer;
})();
在我的页面中,我创建了一个新的MyPeer和listen事件。它工作正常。
var myPeer = new MyPeer();
myPeer.on('onmessage', function(data){
console.log('in onmessage');//it works
});
myPeer.on('myevent', function(data){
console.log('in myevent');//it works
});
在此页面中,我使用window.open函数打开一个新的弹出窗口。在弹出窗口中,我访问myPeer变量并监听事件。有些活动效果很好,有些活动不起作用。
window.opener.myPeer.on('onmessage', function(data){
console.log('in onmessage in popup');//it works
});
window.opener.myPeer.on('myevent', function(data){
console.log('in myevent in popup');//it doesn't work
});
你能否帮我解释为什么myevent无法正常工作?我怎样才能实现这个目标?