📄 options.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>JWChat - Options</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script src="switchStyle.js"></script> <script src="version.js"></script> <script src="shared.js"></script> <script src="jabber_x_data.js"></script> <script src="xmlextras.js"></script> <script src="jsjac.js"></script> <script> <!--function savePrefs() { var prefs = new Array('usersHidden','autoPopup','autoPopupAway','focusWindows','timestamps','playSounds','timerval','enableLog'); if (!srcW.roster) return; var iq = new JSJaCIQ(); iq.setType('set'); var query = iq.setQuery('jabber:iq:private'); var jNode = query.appendChild(iq.getDoc().createElement('jwchat')); jNode.setAttribute('xmlns','jwchat:prefs'); for (var i=0; i<prefs.length; i++) { var item = jNode.appendChild(iq.getDoc().createElement(prefs[i])); if (prefs[i] == 'usersHidden') item.appendChild(iq.getDoc().createTextNode(eval("srcW.roster."+prefs[i]))); else item.appendChild(iq.getDoc().createTextNode(eval("srcW."+prefs[i]))); } srcW.Debug.log(iq.getDoc().xml,3); srcW.con.send(iq);} function displayTimestamps() { srcW.timestamps = form.timestamps.checked; /* set timestamp display in all open chat-windows */ for (var i=0; i<srcW.roster.users.length; i++) { if ((srcW.roster.users[i].chatW) && (srcW.roster.users[i].chatW.closed == false)) { srcW.roster.users[i].chatW.top.displayTimestamp(); } if (srcW.roster.users[i].roster) { for (var j=0; j<srcW.roster.users[i].roster.users.length; j++) { if (srcW.roster.users[i].roster.users[j].chatW && !srcW.roster.users[i].roster.users[j].chatW.closed) srcW.roster.users[i].roster.users[j].chatW.displayTimestamp(); } } }}function toggleAutoPopupAway(el) { document.getElementById('autoPopupAway').disabled = !el.checked;}var form;function getOptions() { form = document.forms['options']; if (srcW.roster.usersHidden) form.usersHidden.checked = true; if (srcW.autoPopup) form.autoPopup.checked = true; if (srcW.autoPopupAway) form.autoPopupAway.checked = true; if (srcW.playSounds == true) form.playSounds.checked = true; if (srcW.timestamps == true) form.timestamps.checked = true; if (srcW.focusWindows == true) form.focusWindows.checked = true; form.enableLog.checked = srcW.enableLog; if (typeof(srcW.loghost) == 'undefined') document.getElementById('tr_enableLog').style.display = 'none'; if (srcW.con.isPolling()) { for (var i=0; i<form.timerval.options.length; i++) { if (form.timerval.options[i].value == srcW.timerval) form.timerval.selectedIndex = i; } } toggleAutoPopupAway(document.getElementById('autoPopup'));}var pane;function service_selected(el) { pane = el.nextSibling; if (el.options[el.selectedIndex].value == '') { pane.innerHTML = ''; return; } pane.innerHTML = "<div class='transport_pane'>"+"Querying Service ...<br>Please stand by!"+"</div>"; var iq = new JSJaCIQ(); iq.setType('get'); iq.setTo(el.options[el.selectedIndex].value); iq.setQuery('jabber:iq:register'); me = this; srcW.con.send(iq,me.getRegisterForm);}function getRegisterForm(iq) { if (!iq || iq.getType() != 'result' || iq.getQueryXMLNS() != 'jabber:iq:register') { pane.innerHTML = "<div class='transport_pane'>"+"An Error occured ..."+"</div>"; return; } srcW.Debug.log(iq.getDoc().xml,2); var query = iq.getQuery(); // check if it's jabber:x:data var html = ''; if (iq.getNode().getElementsByTagName('x').length && iq.getNode().getElementsByTagName('x').item(0).getAttribute('xmlns') == 'jabber:x:data') { html += "<form>"+genJabberXDataTable(iq.getNode().getElementsByTagName('x').item(0))+"</form>"; } else { if (query.getElementsByTagName('registered').item(0)) html += "<div class='pane_el'><b style='color:red;'>"+"You are already registered at this service!"+"</b></div>"; if (query.getElementsByTagName('instructions').item(0)) html += "<div class='pane_el'>"+query.getElementsByTagName('instructions').item(0).firstChild.nodeValue+"</div>"; html += "<form name='transport'><table>"; for (var i=0; i<query.childNodes.length; i++) { var aItem = query.childNodes.item(i); switch (aItem.nodeName) { case 'instructions': case 'registered': break; case 'key': // hide key html += "<tr><td colspan=2><input type=hidden name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>"; break; case 'password': if (aItem.firstChild) html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>"; else html += "<tr><td>"+aItem.nodeName+"</td><td><input type='password' name='"+aItem.nodeName+"'></td></tr>"; break; default: if (aItem.firstChild) html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"' value='"+aItem.firstChild.nodeValue+"'></td></tr>"; else html += "<tr><td>"+aItem.nodeName+"</td><td><input type='text' name='"+aItem.nodeName+"'></td></tr>"; } } html += "</table></form>"; } html += "<div class='pane_el' align='right'>"; if (query.getElementsByTagName('registered').item(0)) { html += "<button onClick=\"unregisterGateway('"+iq.getFrom()+"');\">"+"Unregister"+"</button>"; html += " "; html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Update"+"</button>"; } else html += "<button onClick=\"registerService('"+iq.getFrom()+"','"+pane.id+"');\">"+"Register"+"</button>"; html += "</div>"; pane.innerHTML = html;}var ie5=document.all&&document.getElementById;var oldactiveindex = 0;function tabclicked(e) { // find index of clicked element var firingobj=ie5? event.srcElement : e.target; var tablabels = document.getElementById('tablabels'); for (var i=0; i<tablabels.childNodes.length; i++) if (tablabels.childNodes[i] == firingobj) { if (oldactiveindex == i) return; var tabs = document.getElementById('tabs'); tabs.childNodes[oldactiveindex].className = 'tabinactive'; tabs.childNodes[i].className = 'tab'; tablabels.childNodes[i].className = 'tablabelactive'; tablabels.childNodes[oldactiveindex].className = 'tablabel'; oldactiveindex = i; }}function registerService(sJid,paneid) { var aForm; var pane = document.getElementById(paneid); for (var i=0; i<pane.childNodes.length; i++) { if (pane.childNodes[i].tagName == 'FORM') { aForm = pane.childNodes[i]; break; // found } } var setxml = ''; var jabberXData = (aForm.elements['jwchat_form_type'] && aForm.elements['jwchat_form_type'].value == 'jabber:x:data'); if (jabberXData) { setxml = genJabberXDataReply(aForm); } else { for (var i=0; i<aForm.elements.length; i++) { var el = aForm.elements[i]; setxml += "<"+el.name+">"+el.value+"</"+el.name+">"; } } var iq = new JSJaCIQ(); iq.setType('set'); iq.setTo(sJid); var query = iq.setQuery('jabber:iq:register'); var xmldoc = XmlDocument.create('body','foo'); xmldoc.loadXML('<body>'+setxml+'</body>'); for (var i=0; i<xmldoc.firstChild.childNodes.length; i++) query.appendChild(xmldoc.firstChild.childNodes.item(i).cloneNode(true)); srcW.Debug.log(iq.getDoc().xml,2); me = this; srcW.con.send(iq,me.handleRegisterService,sJid); pane.innerHTML = "<strong>"+"Request sent to "+sJid+".."+"</strong><br>";}/* callback from registering a service */function handleRegisterService(iq,sJid) { if (iq.getType() == 'error') { var html = "<strong style='color:red;'>"+"Error"; if (iq.getNode().getElementsByTagName('error').item(0)) { var aErr = iq.getNode().getElementsByTagName('error').item(0); if (aErr.getAttribute('code')) html += " ("+aErr.getAttribute('code')+")"; html += ": "; if (aErr.firstChild && aErr.firstChild.nodeValue) html += aErr.firstChild.nodeValue; else if (aErr.firstChild) { switch (aErr.firstChild.nodeName) { case 'bad-request': html += "Bad Request"; break; default: html += aErr.firstChild.nodeName; break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -