|
Jetty example source code file (chat.js)
The Jetty chat.js source codefunction $() { return document.getElementById(arguments[0]); } function $F() { return document.getElementById(arguments[0]).value; } var room = { _last: "", _username: null, join: function(name) { if (name == null || name.length==0 ) { alert('Please enter a username!'); } else { this._username=name; $('join').className='hidden'; $('joined').className=''; $('phrase').focus(); Behaviour.apply(); ajax.sendMessage('join', room._username); } }, leave: function() { // switch the input form $('join').className=''; $('joined').className='hidden'; $('username').focus(); Behaviour.apply(); ajax.sendMessage('leave',room._username); room._username=null; }, chat: function(text) { if (text != null && text.length>0 ) { ajax.sendMessage('chat',text); } }, _chat: function(message) { var divChat=document.getElementById("chat"); var from=message.getAttribute('from'); var special=message.getAttribute('alert'); var text=message.childNodes[0].data; if ( special!='true' && from == room._last ) from="..."; else { room._last=from; from+=":"; } var parentElement = divChat; if (special=='true') { var span = document.createElement("span"); span.className="alert"; divChat.appendChild(span); parentElement=span; } var spanFrom = document.createElement("span"); spanFrom.className="from"; spanFrom.innerHTML=from+" "; var spanText = document.createElement("span"); spanText.className="text"; spanText.innerHTML=text; var lineBreak = document.createElement("br"); parentElement.appendChild(spanFrom); parentElement.appendChild(spanText); divChat.appendChild(lineBreak); divChat.scrollTop = divChat.scrollHeight - divChat.clientHeight; }, _members: function(message) { try { var divMembers = document.getElementById("members"); divMembers.innerHTML=""; var spanMember = document.createElement("span"); var ul = document.createElement("ul"); spanMember.appendChild(ul); var x = message.getElementsByTagName("li"); for (var i=0;i<x.length;i++) { var li = document.createElement("li"); li.innerHTML = x[i].firstChild.nodeValue; ul.appendChild(li); } divMembers.appendChild(spanMember); } catch(e) { window.status="ERROR: members "+e.name + ": " + e.message; // alert("_members " + e); } } }; ajax.addListener('chat',room._chat); ajax.addListener('members',room._members); ajax.addPollHandler(room._poll); var chatBehaviours = { '#username' : function(element) { element.setAttribute("autocomplete","OFF"); element.onkeyup = function(ev) { var keyc=EvUtil.getKeyCode(ev); if (keyc==13 || keyc==10) { room.join($F('username')); return false; } return true; } }, '#joinB' : function(element) { element.onclick = function(event) { room.join($F('username')); return false; } }, '#phrase' : function(element) { element.setAttribute("autocomplete","OFF"); element.onkeyup = function(ev) { var keyc=EvUtil.getKeyCode(ev); if (keyc==13 || keyc==10) { room.chat($F('phrase')); $('phrase').value=''; return false; } return true; } }, '#sendB' : function(element) { element.onclick = function(event) { room.chat($F('phrase')); $('phrase').value=''; return false; } }, '#leaveB' : function(element) { element.onclick = function() { room.leave(); return false; } } }; Behaviour.register(chatBehaviours); Other Jetty examples (source code examples)Here is a short list of links related to this Jetty chat.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.