⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwchat.html

📁 WEB IM 实现 j2ee项目的IM功能 可继承到现有的系统当中
💻 HTML
📖 第 1 页 / 共 4 页
字号:
	case 'enableLog':	  enableLog = eval(jNode.childNodes.item(i).firstChild.nodeValue);	  break;	}      }    }  }    // print roster  roster.print();    if (opener.prio)    onlprio = opener.prio;  else    onlprio = DEFAULTPRIORITY;    // send presence  if (onlstat == '')    onlstat = 'available';  changeStatus(onlstat,onlmsg,onlprio);    playSound('connected');    // Start Service Discovery  iq = new JSJaCIQ();  iq.setIQ(con.domain,'get','disco_item_1');  iq.setQuery('http://jabber.org/protocol/disco#items');    con.send(iq,getDiscoItems);    // get bookmarks  iq = new JSJaCIQ();  iq.setIQ(null,'get','storage_bookmarks');  var query = iq.setQuery('jabber:iq:private');  query.appendChild(iq.getDoc().createElement('storage')).setAttribute('xmlns','storage:bookmarks');    con.send(iq,getBookmarks);    // get annotations  iq = new JSJaCIQ();  iq.setIQ(null,'get','jwchat_notes');  var query = iq.setQuery('jabber:iq:private');  query.appendChild(iq.getDoc().createElement('storage')).setAttribute('xmlns','storage:rosternotes');    con.send(iq,getAnnotations);}function getDiscoItems(iq) {  if (!iq)    return;    Debug.log(iq.getDoc().xml,2);    disco = new Object();    var items = iq.getNode().firstChild.childNodes;    /* query items */  for (var i=0; i<items.length; i++) {    if (items[i].nodeName != 'item' || !items[i].getAttribute('jid') || items[i].getAttribute('node')!=null) // skip those      continue;    var aIQ = new JSJaCIQ();    aIQ.setIQ(items[i].getAttribute('jid'),'get','disco_info_'+i);    aIQ.setQuery("http://jabber.org/protocol/disco#info");        con.send(aIQ,getDiscoInfo);  }}function getDiscoInfo(iq) {  if (!iq || iq.getType() != 'result')    return;    Debug.log(iq.getDoc().xml,2);  if (iq.getType() == 'result') {    disco[iq.getFrom()] = iq;        // If the identity does not have a name, set the name to jid    if(iq.getNode().getElementsByTagName('identity').item(0).getAttribute('name') == null)      iq.getNode().getElementsByTagName('identity').item(0).setAttribute('name', iq.getFrom());        // set loghost    if (iq.getNode().getElementsByTagName('identity').item(0)) {      if (iq.getNode().getElementsByTagName('identity').item(0).getAttribute('type') == 'archive') {	for (var j=0; j<iq.getNode().getElementsByTagName('feature').length; j++) {	  if (iq.getNode().getElementsByTagName('feature').item(j).getAttribute('var') == 'http://jabber.org/protocol/archive') {	    loghost = iq.getFrom();	    break;	  }	}      }    }  }}var bookmarks;function getBookmarks(iq) {  if (!iq || iq.getType() != 'result')    return;    Debug.log(iq.getDoc().xml,2);    bookmarks = new Array();  if (iq.getNode().getElementsByTagName('storage').item(0)) {    var jNode = iq.getNode().getElementsByTagName('storage').item(0);    for (var i=0; i<jNode.childNodes.length; i++) {      var item = jNode.childNodes.item(i);      if (item.nodeName == 'conference') {	var bookmark = new Object();	bookmark.jid = item.getAttribute('jid');	bookmark.name = item.getAttribute('name');	if (item.getAttribute('autojoin') == '1')	  bookmark.autojoin = '1';	if (item.getElementsByTagName('nick').item(0))	  bookmark.nick = item.getElementsByTagName('nick').item(0).firstChild.nodeValue;	if (item.getElementsByTagName('pass').item(0))	  bookmark.pass = item.getElementsByTagName('pass').item(0).firstChild.nodeValue;	bookmarks[bookmarks.length] = bookmark;	if (bookmark.autojoin == '1') {	  openGroupchat(bookmark.jid, bookmark.nick, bookmark.pass);	}      }    }  }}var annotations;function getAnnotations(iq) {  if (!iq || iq.getType() != 'result')    return;	  Debug.log(iq.getDoc().xml,2);	  annotations = new Object();  if (iq.getType() == 'result') {    if (iq.getNode().getElementsByTagName('storage').item(0)) {      var jNode = iq.getNode().getElementsByTagName('storage').item(0);      for (var i=0; i<jNode.childNodes.length; i++)	if (jNode.childNodes.item(i).nodeName == 'note' && jNode.childNodes.item(i).firstChild)	  annotations[jNode.childNodes.item(i).getAttribute('jid')] = jNode.childNodes.item(i).firstChild.nodeValue;    }  }}/************************************************************************ *                       ******  END HANDLERS  *******  ************************************************************************ *//************************************************************************ *                           ******  INIT  ******* ************************************************************************ */var con, Debug, srcW;function init() {  /* initialise debugger */  if (!Debug || typeof(Debug) == 'undefined' || !Debug.start) {    if (typeof(Debugger) != 'undefined')      Debug = new Debugger(DEBUG_LVL,'JWChat ' + cutResource(jid));    else {      Debug = new Object();      Debug.log = function() {};      Debug.start = function() {};    }  }  if (DEBUG &&  (!USE_DEBUGJID || DEBUGJID == cutResource(jid)))    Debug.start();    Debug.log("jid: "+jid+"\npass: "+pass,2);  /* get some refs to static elements */  statusLed = frames["jwc_main"].document.getElementById('statusLed');  statusMsg = frames["jwc_main"].document.getElementById('statusMsg');  fmd = frames["jwc_main"].iRoster.document;    /* set title */  document.title = "JWChat - " + nick;  /* set nick */  frames["jwc_main"].document.getElementById('myNickname').innerHTML = nick;    /* init empty roster */  roster = new Roster();    /* ***   * create new connection   */  var oArg = {oDbg: Debug, httpbase: HTTPBASE, timerval: timerval};    if (BACKEND_TYPE == 'binding')    con = new JSJaCHttpBindingConnection(oArg);  else    con = new JSJaCHttpPollingConnection(oArg);    /* register handlers */  con.registerHandler('iq',handleIQSet);  con.registerHandler('presence',handlePresence);  con.registerHandler('message',handleMessage);  con.registerHandler('message',handleMessageError);  con.registerHandler('ondisconnect',handleDisconnect);  con.registerHandler('onconnect',handleConnected);  con.registerHandler('onerror',handleConError);    /* connect to remote */  oArg = {domain:JABBERSERVER,username:jid.substring(0,jid.indexOf('@')),resource:jid.substring(jid.indexOf('/')+1),pass:pass,register:register}    if (BACKEND_TYPE == 'binding') {    if (opener.connect_port && !isNaN(opener.connect_port))      oArg.port = opener.connect_port;    if (opener.connect_host && opener.connect_host != '')      oArg.host = opener.connect_host;    if (opener && opener.connect_secure)      oArg.secure = true;  }  con.connect(oArg);}/************************************************************************ *                       ******  LOGOUT  ******* ************************************************************************ */function cleanUp() {  /* close dependent windows */  if (roster)    roster.cleanUp();    if (subw && !subw.closed)    subw.close();    if (typeof(ow) != 'undefined' && ow && !ow.closed)    ow.close();    if (searchW && !searchW.closed)    searchW.close();    if (ebW && !ebW.closed)    ebW.close();    fmd.getElementById('roster').innerHTML = '';  // clear frames  frames["jwc_sound"].document.open();  frames["jwc_sound"].document.write();  frames["jwc_sound"].document.close();}var logoutCalled = false;function logout() {  logoutCalled = true;  cleanUp();    if (!con.connected())    return;    /* save state */  var iq = new JSJaCIQ();  iq.setIQ(null,'set');  var query = iq.setQuery('jabber:iq:private');  var aNode = query.appendChild(iq.getDoc().createElement('jwchat'));  aNode.setAttribute('xmlns','jwchat:state');    // save presence  if (onlstat != 'offline')    aNode.appendChild(iq.getDoc().createElement('presence')).appendChild(iq.getDoc().createTextNode(onlstat));  if (onlmsg != '')    aNode.appendChild(iq.getDoc().createElement('onlmsg')).appendChild(iq.getDoc().createTextNode(onlmsg));    var hiddengroups = '';  if (typeof(roster) != 'undefined') {    for (var i=0; i<roster.hiddenGroups.length; i++)      if (roster.hiddenGroups[i])	hiddengroups += i+",";  }    if (hiddengroups != '')    aNode.appendChild(iq.getDoc().createElement('hiddenGroups')).appendChild(iq.getDoc().createTextNode(hiddengroups));    con.send(iq);    var aPresence = new JSJaCPresence();  aPresence.setType('unavailable');  con.send(aPresence);  con.disconnect();}/************************************************************************ *                     ******  INITIALISE VARS  ******* ************************************************************************ *//* check for unsupported browsers */if (is.b == 'op' ||     is.b == 'Konqueror' ||     (is.b == 'ns' && is.v < '5') ||    (is.ie && is.mac) ||    is.ie4    )   {    open("unsupported.html","unsupported","width=380,height=180");  }/* quick hack - need this info before onload *//* get args */getArgs();var JABBERSERVER;var BACKEND_TYPE;var HTTPBASE;if (opener && opener.JABBERSERVER)	JABBERSERVER = opener.JABBERSERVER;else if (passedArgs['server'])	JABBERSERVER = passedArgs['server'];if (opener && opener.BACKEND_TYPE)	BACKEND_TYPE = opener.BACKEND_TYPE;else if (passedArgs['btype'])	BACKEND_TYPE = passedArgs['btype'];if (opener && opener.HTTPBASE)	HTTPBASE = opener.HTTPBASE;else if (passedArgs['base'])	HTTPBASE = passedArgs['base'];if (opener && opener.pass)	pass = opener.pass;else if (passedArgs['pass'])	pass = passedArgs['pass'];if (opener && opener.jid)	jid = opener.jid;else if (passedArgs['jid'])	jid = passedArgs['jid'];if (opener && opener.register)	register = opener.registerelse if (passedArgs['register'])	register = eval(passedArgs['register']);if (!jid) {	alert("JID is missing.\nAborting...");  window.close();}if (!pass) {	alert("Password is missing.\nAborting...");	window.close();}if (!isValidJID(jid))  window.close();nick = jid.substring(0,jid.indexOf('@'));/* get style */if (opener && opener.myStyle)  stylesheet = THEMESDIR + "/" + opener.myStyle + "/" + stylesheet;else if (passedArgs['myStyle'])   stylesheet = THEMESDIR + "/" + passedArgs['myStyle'] + "/" + stylesheet;function updateStyleIE() {  if (roster)    roster.updateStyleIE();}onload = init;onunload = logout;onresize = updateStyleIE;//-->    </script>    <script src="roster.js"></script>  </head>  <frameset rows="100%,0,0,0,0" border="0">    <frame src="roster.html" name="jwc_main" marginwidth="0" marginheight="0" scrolling="no">    <frame src="empty.html" name="jwc_sound" marginwidth="0" marginheight="0" onLoad="soundLoaded();">  </frameset>  <body>    Your browser must support frames and javascript to use this application. Please refer to our <a href="help.html">online manual</a> for a list of supported browser.  </body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -