개인 메시지 용으로 생성 된 팝업 창을 사용하여 Socket.IO 채팅을 시도합니다. 팝업 창 코드에서 windows.opener var를 사용하여 주 페이지의 변수 및 함수를 액세스합니다. Firefox 및 Chrome에서는 window.opener.socket.on (...) 함수가 팝업 창 코드에서 성공적으로 시작되지만 IE9는 그렇지 않습니다. 백그라운드의 Node.js 서버는 이벤트를 보내고받습니다. 다음 코드를 사용합니다 :html 팝업 창에서 Socket.IO 채팅
//in index.php
var socket = io.connect('http://localhost:8080');
//other code
$("#users .user").live('click',function(){
//other code
popUpWin[client_id]=window.open('private.php', client_id, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width=300,height=400,left=' + left + ', top=' + top + ',screenX=' + left + ',screenY=' + top + '');
//other code
});
//in private.php
//other code
window.opener.socket.emit('popup',window.opener.client_id);//This work!
window.opener.socket.on('private_message', function (data) {This not work, private message event is send!
$("#private_data_recieved").append('<div><b>'+data.nick+':</b> '+parseString(data.message)+'</div>');
playSound();
});
//other code
대체로 swf 파일이 있습니까? –
아니요, 설명해주세요. – Vlatko
'socket.io.js'의 같은 폴더에'WebSocketMain.swf' 파일이 보입니다. –