📄 index.html.js
字号:
// **********************************************************************
//
// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved.
//
// This copy of Chat Demo is licensed to you under the terms
// described in the CHAT_DEMO_LICENSE file included in this
// distribution.
//
// **********************************************************************
//
// The proxy of the poll chat session factory.
//
var DefaultRouter = "Glacier2/router:tcp -p 4502 -h 127.0.0.1";
//
// Erase all childs of a dom element given is id.
//
function clearChilds(id)
{
var childs = $(id).childElements();
for(var cont = 0; cont < childs.length; cont++)
{
childs[cont].remove();
}
}
function processInputEvent(event)
{
if(event.keyCode == 13)
{
send($('txtMessage').value);
}
}
function clearInputEvent(event)
{
if(event.keyCode == 13)
{
document.getElementById('txtMessage').value = "";
}
}
var ChatViewProxy = Class.create(
{
setState:function(state)
{
if(state == "Connecting")
{
clearChilds('errorView');
$('loginContainer').hide();
$('connectingContainer').show();
var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="connecting">Connecting</b>');
$('statusBar').replace(statusBar);
return;
}
if(state == "Connected")
{
$('loginContainer').hide();
$('connectingContainer').hide();
$('conversationView').show();
$('logoutLink').show();
var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="online">Online</b>');
$('statusBar').replace(statusBar);
return;
}
if(state == "Disconnecting")
{
$('logoutLink').hide();
var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="offline">Disconnecting</b>');
$('statusBar').replace(statusBar);
return;
}
if(state == "Disconnected")
{
$('txtMessageReadOnly').hide();
$('logoutLink').hide();
$('loginLink').hide();
$('conversationView').hide();
$('connectingContainer').hide();
$('loginContainer').show();
var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="offline">Offline</b>');
$('statusBar').replace(statusBar);
clearChilds('userList');
$('txtMessage').value = "";
clearChilds('messageView');
clearChilds('errorView');
$('txtUserName').focus();
return;
}
},
connectionLost:function(error)
{
var statusBar = new Element('div', { 'id': 'statusBar'}).update('<i class="offline">Offline</i>');
$('statusBar').replace(statusBar);
Element.hide('txtMessage');
Element.hide('logoutLink');
$('loginLink').show();
$('txtMessageReadOnly').show();
this.addMessage(error);
},
addUser:function(name)
{
var user = new Element('li', {'id': '_' + name}).update(name);
$('userList').insert(user);
},
delUser:function(name)
{
$('_' + name).remove();
},
userSay:function(timestamp, name, message)
{
this.addMessage("<div>" + timestamp + " - <" + name + "> " + message+ "</div>");
},
setError:function(error)
{
this.setState("Disconnected");
$('errorView').insert(new Element('div').update(error));
},
addMessage:function(message)
{
$('messageView').insert(new Element('div').update(message));
$('messageView').scrollTop = $('messageView').scrollHeight;
}
});
// Call the login operation using a scriptable Cs method.
function login()
{
var sl = getSlControl();
sl.Content.ChatCoordinator.setDefaultRouter(DefaultRouter);
sl.Content.ChatCoordinator.login($('txtUserName').value, $('txtPassword').value);
}
// Call the logout operation using a scriptable Cs method.
function logout()
{
var sl = getSlControl();
sl.Content.ChatCoordinator.logout();
}
// Call the send operation using a scriptable Cs method.
function send(message)
{
var sl = getSlControl();
sl.Content.ChatCoordinator.send(message);
}
// Get a reference to the silverlight plugin.
function getSlControl()
{
return document.getElementById("SilverlightControl");
}
// Show the about dialog.
function about()
{
text = "Chat Demo \n"
+ "Copyright \u00A9 2005-2008 ZeroC, Inc. All rights reserved.\n";
alert(text);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -