这里,没有使用成型的框架类库,如ASP.NET Ajax、Prototype、JQuery 等,一个是这些库都太大,功能多,而我就用那么一点点,有些浪费资源;另一个原因是这个功能实现起来也不太麻烦,正好练练手。所以这里就自己实现了
好了,下面正式开始:
1、添加加评论:
呵呵,服务器控件用常了,乍一换,还真有些不太适应。 要让人评论,咱得先给人个评论框啊,我的做法是 用 script 调用动态页,输出所需要的内容:
1
<!--相关评论-->
2
<script src="/Module_News/Comment.aspx?id=11&title=科技奥运5个“第一次”" type="text/javascript"></script>
3
<script language="javascript" type="text/javascript">requestComment(11);</script>
4
<!--相关评论-->
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
1
if (!this.IsPostBack)
2
{
3
if (Request.QueryString["id"] != null)
4
{
5
string iParentID = Request.QueryString["id"].ToString();
6
string IP = "";
7
try
8
{
9
IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
10
}
11
catch
12
{
13
IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
14
}
15
string cTitle = "Re:" + Request.QueryString["title"].ToString();
16
string str = "document.write(\"<b>FeedBack:</b><br /><div class='feedbackNoItems'></div><span id='comment'></span>\");";
17![](/Images/OutliningIndicators/InBlock.gif)
18
//评论输入框
19
str += "document.write(\"<table border='0' style='width:600px;height:200px;FONT: 12px/150% '宋体' Tahoma;'>" +
20
"<tr><td colspan='2' align='right'><a href='javascript:requestComment(" + iParentID.ToString() + ")'>刷新评论列表</a></td></tr>" +
21
"<tr><td style='width:25%;'>标题</td>" +
22
"<td style='width:75%;'><input type='hidden' id='iParentID' value='" + iParentID + "' /><input type='hidden' id='cIP' value='" + IP + "' /><input type='text' id='cTitle' value='" + cTitle + "' style='width:90%;border:1px solid #979696; '/></td>" +
23
"</tr><tr><td style='width:25%;'>姓名</td>" +
24
"<td style='width:75%;'><input type='text' id='cAuthor' style='width:90%;border:1px solid #979696;'/></td>" +
25
"</tr><tr><td style='width:25%; vertical-align:top;'>内容</td>" +
26
"<td style='width:75%;'><input type='text' id='cContent' onkeydown='ctlent(event)' style='width:90%;height:100px;border:1px solid #979696;'/></td>" +
27
"</tr><tr><td style='width:25%;'></td><td style='width:75%;' align='center'>" +
28
"<input type='button' value='清空' onclick='clearup();' style='width:50px;border:1px solid #979696; padding-top:3px; background-color:#E8E8E8'/> " +
29
"<input type='button' value='发表评论' onclick='send();' style='width:70px;border:1px solid #979696; padding-top:3px; background-color:#E8E8E8' /> " +
30
"</td></tr></table><br/><div id='message' style='FONT: 12px/150% 宋体 Tahoma ;color:#E00404;'></div>\");";
31![](/Images/OutliningIndicators/InBlock.gif)
32
//输出JS脚本
33
str += "document.write(\"<script src='../../../JavaScript/myAjax.js' type='text/javascript'></script>\");";
34![](/Images/OutliningIndicators/InBlock.gif)
35
//评论显示样式
36
str += "document.write(\"<style type='text/css'>.mo_wp{ background:#F7F7F7; margin-bottom:4px;border:1px solid #dfdfdf;FONT: 12px/150% '宋体' Tahoma; }" +
37
".mo_title{ clear:both; background:#e3e3e3; color:#000; padding:6px 8px 6px 12px;}" +
38
".mo_title_l{ display:block; margin-right:12px; width:auto;}" +
39
".mo_title_r1,.mo_title_r2{ display:block; float:right; height:12px; width:50%; }" +
40
".mo_con{ clear:both; padding:8px 12px;color:#555; line-height:22px;}</style>\");";
41
Response.Write(str);
42
}
43
else
44
{
45
Response.Write("");
46
}
47
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
嗯,连样式一块输出 ;在这里,还记下了他的IP地址,嘿嘿。
框出来了,添加好内容,提交评论。这一过程中的表单验证、保存数据 我都写在了myAjax.js里,主要就是调用WebService
向数据库添加数据 我也表述不清,大家还是看代码吧:
1
/*
2
Title: Ajax 无刷新增加新闻评论【Ajax调用WebService】
3
Author:xpengfee DateTime:2007-07-27 9:40
4
*/
5
function getXMLRequester( )
6
{ //此函数是建立XMLHTTP组件的,可能ie低版本无法使用,请参阅msdn;
7
var xmlhttp_request = false;
8
try{
9
if( window.ActiveXObject )
10
{
11
for( var i = 5; i; i-- )
12
{
13
try
14
{
15
if( i == 2 )
16
{
17
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
18
}
19
else
20
{
21
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
22
xmlhttp_request.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
23
}
24
25
break;
26
}
27
catch(e)
28
{
29
xmlhttp_request = false;
30
}
31
}
32
}
33
else if( window.XMLHttpRequest )
34
{
35
xmlhttp_request = new XMLHttpRequest();
36
if (xmlhttp_request.overrideMimeType)
37
{
38
xmlhttp_request.overrideMimeType('text/xml');
39
}
40
}
41
}
42
catch(e)
43
{
44
xmlhttp_request = false;
45
alert("对不起您的浏览器版本太低,请更新后使用。");
46
}
47
48
return xmlhttp_request ;
49
}
50![](/Images/OutliningIndicators/None.gif)
51
var req;
52
function sendRequest(url, Method, HttpMethod, params) //发送请求
53
{
54
url += "/" + Method;
55
if (!HttpMethod)
56
{
57
HttpMethod = "POST";
58
}
59
req = getXMLRequester(); //建立组件
60
if (req)
61
{
62
req.onreadystatechange = processReqChange;//调用[设定]进程监视函数
63
req.open(HttpMethod, url, true);
64
req.setRequestHeader("Host", "localhost");//发布时要更正 Host
65
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");//一定要加上charset,否则有乱码
66
req.setRequestHeader("Content-Length",params.length);
67
req.send(params); //发送数据参数
68
}
69
}
70![](/Images/OutliningIndicators/None.gif)
71
function sendRequest2(url, Method, HttpMethod,params) //发送请求
72
{
73
url += "/" + Method;
74
if (!HttpMethod)
75
{
76
HttpMethod = "POST";
77
}
78
req = getXMLRequester(); //建立组件
79
if (req)
80
{
81
req.onreadystatechange = processReqChange2;//调用[设定]进程监视函数
82
req.open(HttpMethod, url, false);
83
req.setRequestHeader("Host", "localhost");//发布时要更正 Host
84
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");//一定要加上charset,否则有乱码
85
req.setRequestHeader("Content-Length",params.length);
86
req.send(params); //发送数据参数
87
}
88
}
89![](/Images/OutliningIndicators/None.gif)
90
function sendRequest_Item(url, Method, HttpMethod,params) //发送请求
91
{
92
url += "/" + Method;
93
if (!HttpMethod)
94
{
95
HttpMethod = "GET";
96
}
97
req = getXMLRequester(); //建立组件
98
if (req)
99
{
100
req.onreadystatechange = processReqChange_Item;//调用[设定]进程监视函数
101
req.open(HttpMethod, url, false);
102
req.setRequestHeader("Host", "localhost");//发布时要更正 Host
103
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");//一定要加上charset,否则有乱码
104
req.setRequestHeader("Content-Length",params.length);
105
req.send(params); //发送数据参数
106
}
107
}
108![](/Images/OutliningIndicators/None.gif)
109![](/Images/OutliningIndicators/None.gif)
110
function processReqChange()
111
{
112
// 监视数据传递。
113
if (req.readyState == 4)
114
{
115
if (req.status == 200)
116
{
117
xmlResponse(); // connect OK 执行输出函数out()
118
}
119
else
120
{ //抛出错误
121
alert("无法正常连接服务器,错误:\n" +
122
req.statusText+":"+req.status);
123
}
124
}
125
}
126![](/Images/OutliningIndicators/None.gif)
127
function processReqChange2()
128
{
129
// 监视数据传递。
130
if (req.readyState == 4)
131
{
132
if (req.status == 200)
133
{
134
xmlResponse2(); // connect OK 执行输出函数out()
135
}
136
else
137
{ //抛出错误
138
alert("无法正常连接服务器,错误:\n" +
139
req.statusText+":"+req.status);
140
}
141
}
142
}
143![](/Images/OutliningIndicators/None.gif)
144
function processReqChange_Item()
145
{
146
// 监视数据传递。
147
if (req.readyState == 4)
148
{
149
if (req.status == 200)
150
{
151
xmlResponse_Item(); // connect OK 执行输出函数out()
152
}
153
else
154
{ //抛出错误
155
alert("无法正常连接服务器,错误:\n" +
156
req.statusText+":"+req.status);
157
}
158
}
159
}
160![](/Images/OutliningIndicators/None.gif)
161
function xmlResponse2() //输出函数【Success】
162
{
163
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
164
xmlDoc.async=false;
165
xmlDoc.validateOnParse=false;
166
xmlDoc.loadXML(req.responseText);
167
168
document.getElementById("comment").innerHTML=xmlDoc.selectSingleNode("string").text;
169
}
170![](/Images/OutliningIndicators/None.gif)
171
function xmlResponse_Item() //输出函数【Success】
172
{
173
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
174
xmlDoc.async=false;
175
xmlDoc.validateOnParse=false;
176
xmlDoc.loadXML(html(req.responseText));//从服务器端传回的数据 HTML元素被Encode 所以在这用 html 函数反编码
177
178
var lbItem = document.getElementById("lbItem");
179
lbItem.options.length=0;//清空列表框
180
181
var options=xmlDoc.getElementsByTagName("Item");
182
183
for (var i = 0;i<options.length;i++)
184
{
185
lbItem.add(new Option(options[i].text,options[i].getAttribute("value")));
186
}
187
188
//http://community.csdn.net/Expert/topic/5581/5581510.xml?temp=.740719
189
//http://www.blogjava.net/crazycy/archive/2007/08/29/59579.html
190
//http://www.xqblog.net/sitemap.aspx
191
}
192![](/Images/OutliningIndicators/None.gif)
193
//
194
function html(str)
195
{
196
var reg=new RegExp("<","g"); //创建正则RegExp对象
197
var newstr=str.replace(reg,"<");
198
var reg2=new RegExp(">","g");
199
newstr=newstr.replace(reg2,">");
200
return newstr;
201![](/Images/OutliningIndicators/InBlock.gif)
202
}
203![](/Images/OutliningIndicators/None.gif)
204
function xmlResponse() //输出函数【Success】
205
{
206
document.getElementById("message").innerHTML="感谢您的评论!:)";
207
}
208![](/Images/OutliningIndicators/None.gif)
209
////=========================================================
210
//Ctrl+Enter发送信息
211
function ctlent(evt)
212
{
213
if(evt.ctrlKey && evt.keyCode == 13)
214
{
215
send();
216
}
217
}
218
//清空信息
219
function clearup()
220
{
221
clear();
222
}
223
function clear()
224
{
225
//清空输入框
226
document.getElementById("cTitle").value = "";
227
document.getElementById("cAuthor").value = "";
228
document.getElementById("cContent").value = "";
229
}
230
//发送消息
231
function send()
232
{
233
var iParentID=document.getElementById("iParentID").value;
234
var cAuthor=document.getElementById("cAuthor").value;
235
var cTitle=document.getElementById("cTitle").value;
236
var cEmail="";//Email暂时为空
237
var cSourceIP=document.getElementById("cIP").value;
238
var cContent=document.getElementById("cContent").value;
239
240
//验证评论信息
241
if(cTitle=="")
242
{
243
alert("请填写标题");
244
document.getElementById("cTitle").focus();
245
return false;
246
}
247
if(cAuthor=="")
248
{
249
alert("请留下大名");
250
document.getElementById("cAuthor").focus();
251
return false;
252
}
253
if(cContent=="")
254
{
255
alert("请填写评论内容");
256
document.getElementById("cContent").focus();
257
return false;
258
}
259
260
261
//调用WEBService方法发送消息
262
sendRequest('http://localhost:83/WebService/Module_Comment.asmx','Insert','POST','iParentID='+iParentID+'&cAuthor='+cAuthor+'&cTitle='+cTitle+'&cEmail='+cEmail+'&cSourceIP='+cSourceIP+'&cContent='+cContent+'');
263
264
document.getElementById("message").innerHTML="感谢您的评论!:)";
265
//取出评论内容
266
requestComment(iParentID);
267![](/Images/OutliningIndicators/InBlock.gif)
268
//清空输入框
269
clear();
270
}
271![](/Images/OutliningIndicators/None.gif)
272
//取出评论信息
273
function requestComment(iParentID)
274
{
275
sendRequest2('http://localhost:83/WebService/Module_Comment.asmx','GetModule_CommentByParentID','Post','iParentID='+iParentID+'');
276
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
69
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
70
![](/Images/OutliningIndicators/None.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
89
![](/Images/OutliningIndicators/None.gif)
90
![](/Images/OutliningIndicators/None.gif)
91
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
108
![](/Images/OutliningIndicators/None.gif)
109
![](/Images/OutliningIndicators/None.gif)
110
![](/Images/OutliningIndicators/None.gif)
111
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
124
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
125
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/None.gif)
128
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
141
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
142
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
143
![](/Images/OutliningIndicators/None.gif)
144
![](/Images/OutliningIndicators/None.gif)
145
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
158
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
159
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
160
![](/Images/OutliningIndicators/None.gif)
161
![](/Images/OutliningIndicators/None.gif)
162
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
170
![](/Images/OutliningIndicators/None.gif)
171
![](/Images/OutliningIndicators/None.gif)
172
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/InBlock.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
192
![](/Images/OutliningIndicators/None.gif)
193
![](/Images/OutliningIndicators/None.gif)
194
![](/Images/OutliningIndicators/None.gif)
195
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/InBlock.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
203
![](/Images/OutliningIndicators/None.gif)
204
![](/Images/OutliningIndicators/None.gif)
205
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
208
![](/Images/OutliningIndicators/None.gif)
209
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
210
![](/Images/OutliningIndicators/None.gif)
211
![](/Images/OutliningIndicators/None.gif)
212
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
215
![](/Images/OutliningIndicators/InBlock.gif)
216
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
217
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
218
![](/Images/OutliningIndicators/None.gif)
219
![](/Images/OutliningIndicators/None.gif)
220
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
223
![](/Images/OutliningIndicators/None.gif)
224
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
225
![](/Images/OutliningIndicators/InBlock.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
230
![](/Images/OutliningIndicators/None.gif)
231
![](/Images/OutliningIndicators/None.gif)
232
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
233
![](/Images/OutliningIndicators/InBlock.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/InBlock.gif)
242
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
243
![](/Images/OutliningIndicators/InBlock.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
249
![](/Images/OutliningIndicators/InBlock.gif)
250
![](/Images/OutliningIndicators/InBlock.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/InBlock.gif)
257
![](/Images/OutliningIndicators/InBlock.gif)
258
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/InBlock.gif)
261
![](/Images/OutliningIndicators/InBlock.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/InBlock.gif)
265
![](/Images/OutliningIndicators/InBlock.gif)
266
![](/Images/OutliningIndicators/InBlock.gif)
267
![](/Images/OutliningIndicators/InBlock.gif)
268
![](/Images/OutliningIndicators/InBlock.gif)
269
![](/Images/OutliningIndicators/InBlock.gif)
270
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
271
![](/Images/OutliningIndicators/None.gif)
272
![](/Images/OutliningIndicators/None.gif)
273
![](/Images/OutliningIndicators/None.gif)
274
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
用的时候要注意一下编码问题,还有调用WEB服务的host也要做适当修改
2、取出评论列表:
用requestComment调用JS文件里的方法,通过WEB服务取出评论列表,详细实现都在代码里。OK,就这些,希望多提宝贵意见,谢谢!