1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<title>JWChat - 房间搜索</title>
5
<meta http-equiv="content-type" content="text/html; charset=utf-8">
6
<script src="shared.js"></script>
7
<script src="switchStyle.js"></script>
8
<script src="jsjac.js"></script>
11
var srcW; // the source window with necessary data
13
var conference_server;
15
conference_server = document.forms[0].conference_server.value;
17
/* check for errors */
18
if (conference_server.indexOf('@') != -1 || conference_server.indexOf('/') != -1) {
23
document.getElementById("search_tab").style.display = 'none';
24
document.getElementById("search_result_tab").style.display = '';
25
document.getElementById("search_result_iframe").style.display = 'none';
26
document.getElementById("addbookmark_button").style.display = 'none';
27
document.getElementById("join_room_button").style.display = 'none';
28
document.getElementById("search_result_header").innerHTML = "对 "+conference_server+" 的搜索结果";
29
document.getElementById("search_result_info").innerHTML = "查询 "+conference_server+",请稍候……";
30
search_result_iframe.document.body.innerHTML = '';
31
search_result_iframe.selectedRow = null;
33
var iq = new JSJaCIQ();
35
iq.setTo(conference_server);
36
iq.setID(conference_server+"IQ");
37
iq.setQuery('http://jabber.org/protocol/disco#items');
40
srcW.con.send(iq,me.getDiscoItems);
44
function getDiscoItems(iq) {
45
if (!iq || iq.getType() != 'result') {
46
document.getElementById("search_result_info").innerHTML = "有错误发生!";
48
srcW.Debug.log(iq.getDoc().xml,1);
51
srcW.Debug.log(iq.getDoc().xml,2);
53
var myTable = search_result_iframe.document.createElement("TABLE");
55
var myTableHead = search_result_iframe.document.createElement("THEAD");
56
myTableBody = search_result_iframe.document.createElement("TBODY");
58
var row = search_result_iframe.document.createElement("TR");
59
var header = new Array("房间","描述");
61
for (var i=0; i<header.length; i++) {
62
cell = search_result_iframe.document.createElement("TH");
63
cell.appendChild(search_result_iframe.document.createTextNode(header[i]));
64
row.appendChild(cell);
66
myTableHead.appendChild(row);
67
myTable.appendChild(myTableHead);
69
myTable.appendChild(myTableBody);
71
myTable.setAttribute("id","modTable");
72
myTable.setAttribute("WIDTH","100%");
73
myTable.setAttribute("BORDER","0");
74
myTable.setAttribute("CELLSPACING","0");
75
myTable.setAttribute("CELLPADDING","0");
76
myTable.setAttribute("RULES","rows");
79
search_result_iframe.document.body.appendChild(myTable);
81
document.getElementById("search_result_iframe").style.display = '';
82
document.getElementById("addbookmark_button").style.display = '';
83
document.getElementById("join_room_button").style.display = '';
84
document.getElementById("addbookmark_button").disabled = true;
85
document.getElementById("join_room_button").disabled = true;
87
disco_items = new Array();
89
disco_items_length = iq.getQuery().getElementsByTagName('item').length;
90
for (var i=0; i<iq.getQuery().getElementsByTagName('item').length; i++) {
91
var aNode = iq.getQuery().getElementsByTagName('item').item(i);
92
disco_items[aNode.getAttribute('jid')] = aNode;
95
var aIQ = new JSJaCIQ();
96
aIQ.setTo(aNode.getAttribute('jid'));
98
aIQ.appendNode('vCard', {'xmlns': 'vcard-temp'});
100
srcW.con.send(aIQ, me.getVCard);
106
function getVCard(iq) {
107
var aNode = disco_items[iq.getFrom()];
109
row = search_result_iframe.document.createElement("TR");
111
cell = search_result_iframe.document.createElement("TD");
112
textN = search_result_iframe.document.createTextNode(aNode.getAttribute('name'));
113
cell.appendChild(textN);
114
row.appendChild(cell);
116
cell = search_result_iframe.document.createElement("TD");
117
if (iq.getType() == 'result' && iq.getNode().getElementsByTagName('DESC').item(0) && iq.getNode().getElementsByTagName('DESC').item(0).firstChild)
118
textN = search_result_iframe.document.createTextNode(iq.getNode().getElementsByTagName('DESC').item(0).firstChild.nodeValue);
120
textN = search_result_iframe.document.createTextNode('\ ');
121
cell.appendChild(textN);
122
row.appendChild(cell);
124
row.setAttribute("jid",aNode.getAttribute('jid'));
125
myTableBody.appendChild(row);
129
if (disco_at == disco_items_length) {
130
// we're done tell frame about it
131
search_result_iframe.init();
132
document.getElementById("search_result_info").innerHTML = "完成";
136
function joinRoom() {
137
srcW.openGroupchat(search_result_iframe.selectedRow.getAttribute('jid'),srcW.nick);
141
function backtosearch() {
142
document.getElementById("search_result_tab").style.display = 'none';
143
document.getElementById("search_tab").style.display = '';
149
if (srcW.DEFAULTCONFERENCESERVER)
150
document.forms[0].conference_server.value = srcW.DEFAULTCONFERENCESERVER;
151
document.getElementById("search_result_tab").style.display = 'none';
157
function keyPressed(e) {
165
onkeydown = keyPressed;
170
<script for="document" event="onkeydown()" language="JScript">
172
return keyPressed(window.event);
176
<body style="margin:8px;">
177
<div id="search_tab">
179
<form name="sub" onsubmit="return doSub();">
183
<label for="conference_server">搜索服务器:
186
<input type="text" name="conference_server" style="width:100%;">
189
<button type="submit">搜索</button>
195
<table id="search_result_tab" width="100%" height="100%">
196
<tr><td><h2 id="search_result_header"></h2></td></tr>
197
<tr><td id="search_result_info"></td></tr>
198
<tr><td width="100%" height="100%"><iframe id="search_result_iframe" name="search_result_iframe" src="searchrooms_results_iframe.html" style="width:100%;height:100%;"></iframe></tr></td>
199
<tr><td><hr noshade size=1></td></tr>
202
<button id="addbookmark_button" onClick="return addBookmark();" disabled>书签</button> <button id="join_room_button" onClick="return joinRoom();">加入</button> <button onClick="return backtosearch();">后退</button>