index.js
socket.on('join room', function(data) {
var msg = "<span style='color:darkgreen;'>" + data.user + " has joined chat.</span>";
socket.to(data.room).emit('system message', msg);
});
index.html
$(function() {
socket.on('system message', function(msg) {
$('#messages').append($('<div class="systemMessage">').html(msg));
var height = $("#messages")[0].scrollHeight;
$.mobile.silentScroll(height);
});
});
$( document ).on( "pageshow", "#channel", function ( e ) {
var socket = io();
if (getCookie("username") == "null") {
$( ":mobile-pagecontainer" ).pagecontainer( "change", "#login-page", {
transition: "pop"
} );
}
else {
socket.emit('join room', { room: getCookie("currentRoom"), user: getCookie("username") });
$("#enter-sound").get(0).play();
}
});
Таким образом, по какой-либо причине при смене каналов не отображается «системное сообщение», которое отправляется, когда пользователь присоединяется к новому каналу через «присоединенную комнату».Выдает & системное сообщение. У кого-нибудь есть мысли о том, почему это может быть? Я поместил туда отладчик в стиле предупреждений, и он не показывает предупреждение javascript при запуске системного сообщения socket.on.