📄 dwr 入門與應用(二) - 林信良(良葛格)的专栏 - csdnblog.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0069)http://blog.csdn.net/caterpillar_here/archive/2006/09/18/1239538.aspx -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content=良葛格 name=author>
<META content=Csdn name=Copyright>
<META
content="原發表於 http://www.javaworld.com.tw/jute/post/view?bid=49&amp;id=166425&amp;sty=1&amp;tpg=1&amp;age=0,因繁簡技術用語不同,不再作簡體轉換,免生困擾…Orz..."
name=description>
<META content=良葛格,w3c,dwr,js,script,javascript, name=keywords><LINK
href="http://profile.csdn.net/caterpillar_here/picture/1.ico"
rel="Shortcut Icon"><LINK media=all
href="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/Cogitation_1.css"
type=text/css rel=stylesheet><LINK media=all
href="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/csdn_favbykimi.css"
type=text/css rel=stylesheet>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/jquery-1.2.3.pack.js"
type=text/javascript></SCRIPT>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/jquery.highlighter.js"
type=text/javascript></SCRIPT>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/highlighter.js"
type=text/javascript></SCRIPT>
<LINK title=RSS href="http://blog.csdn.net/caterpillar_here/rss.aspx"
type=application/rss+xml rel=alternate>
<META content="MSHTML 6.00.2900.5726" name=GENERATOR></HEAD>
<BODY id=defaultuser>
<DIV id=csdnblog_allwrap>
<FORM id=Form1 name=Form1 action=1239538.aspx method=post><INPUT
id=" __VIEWSTATE" type=hidden name=__VIEWSTATE>
<DIV id=csdnblog_midwrap>
<DIV id=csdnblog_header>
<H1><A id=Header1_HeaderTitle
href="http://blog.csdn.net/caterpillar_here/">林信良(良葛格)的专栏</A></H1>
<H2>http://caterpillar.onlyfun.net/ </H2>
<UL id=personalnav>
<LI><A href="http://passport.csdn.net/UserLogin.aspx">登录</A></LI>
<LI><A href="http://passport.csdn.net/CSDNUserRegister.aspx">注册</A></LI></UL>
<UL id=blogsearchsty>
<LI><INPUT class=bolgsearch id=inputSearch
onkeydown="return keyb(event)"></LI>
<LI class=selectsty><SELECT id=Search_ddlSearchScope
name=Search:ddlSearchScope><OPTION value=all selected>全站</OPTION><OPTION
value=caterpillar_here>当前博客</OPTION></SELECT></LI>
<LI><INPUT class=bolggobtn onclick=checkNull() type=button value=搜索></LI></UL>
<UL id=menu>
<LI><A href="http://hi.csdn.net/caterpillar_here">空间</A></LI>
<LI><A class=on href="http://blog.csdn.net/caterpillar_here">博客</A></LI>
<LI><A
href="http://hi.csdn.net/caterpillar_here/profile/contactlist/1.html">好友</A></LI>
<LI><A href="http://album.hi.csdn.net/" target=_blank>相册</A></LI>
<LI><A class=last
href="http://hi.csdn.net/caterpillar_here/profile/notebook/1.html">留言</A></LI></UL></DIV>
<DIV id=csdnblog_content>
<DIV class=gutter>
<DIV class=default_contents>
<DIV class=user_article>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/LoadFeedbackCount.js"
type=text/javascript></SCRIPT>
<H1 class=title_txt><IMG height=16 alt=原创
src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/authorship.gif" width=15
border=0> DWR 入門與應用(二)<CITE class=fav_csdnstylebykimi><A
class=fav_csdnstylebykimi title=收藏到我的网摘中,并分享给我的朋友
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏</A></CITE></H1>
<DIV class=blogstory>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<SPAN class=javascript id=text166425>假設您要從資料庫中查詢出一些字串,然後填寫到表單的下拉選單中。
<BR><BR>例如一個示意的Java程式如下: <BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><FONT class=java-reserved_word><STRONG>package</STRONG></FONT> onlyfun.caterpillar;<BR> <BR><FONT class=java-reserved_word><STRONG>public</STRONG></FONT> <FONT class=java-reserved_word><STRONG>class</STRONG></FONT> Option <FONT class=java-bracket>{</FONT><BR> <FONT class=java-reserved_word><STRONG>public</STRONG></FONT> String[] getOptions() <FONT class=java-bracket>{</FONT><BR> <FONT class=java-comment>// 實際上這些字串是從資料庫中查到的啦…</FONT><BR> <FONT class=java-reserved_word><STRONG>return</STRONG></FONT> <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"良葛格"</FONT>, <FONT class=java-string>"毛美眉"</FONT>, <FONT class=java-string>"米小狗"</FONT><FONT class=java-bracket>}</FONT>; <BR> <FONT class=java-bracket>}</FONT><BR><FONT class=java-bracket>}</FONT> </PRE></TD></TR></TBODY></TABLE><BR><BR>傳回的字串陣列,您要填寫到下拉選單中,當然,首先我們要在dwr.xml中開發這個物件…
<BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><?xml version=<FONT class=java-string>"1.0"</FONT> encoding=<FONT class=java-string>"UTF-8"</FONT>?><BR><!DOCTYPE dwr PUBLIC <FONT class=java-string>"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"</FONT> <FONT class=java-string>"http://www.getahead.ltd.uk/dwr/dwr10.dtd"</FONT>><BR> <BR><dwr><BR> <allow><BR> <create creator=<FONT class=java-string>"new"</FONT> javascript=<FONT class=java-string>"OPT"</FONT>><BR> <param name=<FONT class=java-string>"class"</FONT> value=<FONT class=java-string>"onlyfun.caterpillar.Option"</FONT>/><BR> </create> <BR> </allow><BR></dwr><BR></PRE></TD></TR></TBODY></TABLE><BR><BR>這是我們的網頁…
<BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR>11<BR>12<BR>13<BR>14<BR>15<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><!DOCTYPE HTML PUBLIC <FONT class=java-string>"-//W3C//DTD HTML 4.01 Transitional//EN"</FONT>><BR><html><BR><head><BR><meta http-equiv=<FONT class=java-string>"Content-Type"</FONT> content=<FONT class=java-string>"text/html; charset=BIG5"</FONT>><BR><script src=<FONT class=java-string>"option.js"</FONT> type=<FONT class=java-string>"text/javascript"</FONT>></script><BR><script src=<FONT class=java-string>"dwr/interface/OPT.js"</FONT> type=<FONT class=java-string>"text/javascript"</FONT>></script><BR><script src=<FONT class=java-string>"dwr/engine.js"</FONT> type=<FONT class=java-string>"text/javascript"</FONT>></script><BR><script src=<FONT class=java-string>"dwr/util.js"</FONT> type=<FONT class=java-string>"text/javascript"</FONT>></script><BR> <BR></head><BR> <BR><body><BR> 選項: <select id=<FONT class=java-string>"opts"</FONT>></select><BR></body><BR></html><BR></PRE></TD></TR></TBODY></TABLE><BR><BR>傳回的字串陣列會填入opts這個select中,我們的option.js如下… <BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE>window.onload = function() <FONT class=java-bracket>{</FONT><BR> OPT.getOptions(populate); <BR><FONT class=java-bracket>}</FONT>;<BR> <BR>function populate(list)<FONT class=java-bracket>{</FONT><BR> DWRUtil.removeAllOptions(<FONT class=java-string>"opts"</FONT>);<BR> DWRUtil.addOptions(<FONT class=java-string>"opts"</FONT>, list);<BR><FONT class=java-bracket>}</FONT> </PRE></TD></TR></TBODY></TABLE><BR><BR>夠簡單了…不需要解釋了…
<BR><BR>看一下結果… </SPAN><BR><IMG alt=""
src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/88753484.jpg"><BR><BR><SPAN
class=javascript id=text166427>好啦!我知道有人在說了,這個程式有夠無聊…<IMG alt=Dead
src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/smile_dead.gif" width=15>
<BR><BR>改一下!就是個不錯的範例了,例如連動方塊,唔!在Ajax in action中叫啥?Dynamic double combo?…
<BR><BR>假設一個會去從資料庫中查詢資料的Java程式示意如下: <BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR>11<BR>12<BR>13<BR>14<BR>15<BR>16<BR>17<BR>18<BR>19<BR>20<BR>21<BR>22<BR>23<BR>24<BR>25<BR>26<BR>27<BR>28<BR>29<BR>30<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><FONT class=java-reserved_word><STRONG>package</STRONG></FONT> onlyfun.caterpillar;<BR> <BR><FONT class=java-reserved_word><STRONG>import</STRONG></FONT> java.util.Map;<BR><FONT class=java-reserved_word><STRONG>import</STRONG></FONT> java.util.TreeMap;<BR> <BR><FONT class=java-reserved_word><STRONG>public</STRONG></FONT> <FONT class=java-reserved_word><STRONG>class</STRONG></FONT> Bike <FONT class=java-bracket>{</FONT><BR> <FONT class=java-reserved_word><STRONG>private</STRONG></FONT> Map<String, String[]> bikes;<BR> <BR> <FONT class=java-reserved_word><STRONG>public</STRONG></FONT> Bike() <FONT class=java-bracket>{</FONT><BR> bikes = <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> TreeMap<String, String[]>();<BR> bikes.put(<FONT class=java-string>"2000"</FONT>, <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"2000 T1"</FONT>, <FONT class=java-string>"2000 T2"</FONT>, <FONT class=java-string>"2000 T3"</FONT><FONT class=java-bracket>}</FONT>);<BR> bikes.put(<FONT class=java-string>"2001"</FONT>, <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"2001 A1"</FONT>, <FONT class=java-string>"2001 A2"</FONT><FONT class=java-bracket>}</FONT>);<BR> bikes.put(<FONT class=java-string>"2002"</FONT>, <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"2002 BW1"</FONT>, <FONT class=java-string>"2002 BW2"</FONT>, <FONT class=java-string>"2002 BW"</FONT><FONT class=java-bracket>}</FONT>);<BR> bikes.put(<FONT class=java-string>"2003"</FONT>, <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"2003 S320"</FONT><FONT class=java-bracket>}</FONT>);<BR> bikes.put(<FONT class=java-string>"2004"</FONT>, <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[] <FONT class=java-bracket>{</FONT><FONT class=java-string>"2004 TA1"</FONT>, <FONT class=java-string>"2004 TA2"</FONT>, <FONT class=java-string>"2004 TA3"</FONT><FONT class=java-bracket>}</FONT>);<BR> <FONT class=java-bracket>}</FONT><BR> <BR> <FONT class=java-reserved_word><STRONG>public</STRONG></FONT> String[] getYears() <FONT class=java-bracket>{</FONT><BR> String[] keys = <FONT class=java-reserved_word><STRONG>new</STRONG></FONT> String[bikes.size()];<BR> <FONT class=java-reserved_word><STRONG>int</STRONG></FONT> i = 0;<BR> <FONT class=java-reserved_word><STRONG>for</STRONG></FONT>(String key : bikes.keySet()) <FONT class=java-bracket>{</FONT><BR> keys[i++] = key;<BR> <FONT class=java-bracket>}</FONT><BR> <FONT class=java-reserved_word><STRONG>return</STRONG></FONT> keys; <BR> <FONT class=java-bracket>}</FONT><BR> <BR> <FONT class=java-reserved_word><STRONG>public</STRONG></FONT> String[] getBikes(String year) <FONT class=java-bracket>{</FONT><BR> <FONT class=java-reserved_word><STRONG>return</STRONG></FONT> bikes.get(year);<BR> <FONT class=java-bracket>}</FONT><BR><FONT class=java-bracket>}</FONT> </PRE></TD></TR></TBODY></TABLE><BR><BR>getYears()跟getBkies()分別表示產品的年份跟型號,這邊用Map模擬,實際上資料是來自資料庫的查詢。
<BR><BR>一樣的,在dwr.xml中設定: <BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><?xml version=<FONT class=java-string>"1.0"</FONT> encoding=<FONT class=java-string>"UTF-8"</FONT>?><BR><!DOCTYPE dwr PUBLIC <FONT class=java-string>"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"</FONT> <FONT class=java-string>"http://www.getahead.ltd.uk/dwr/dwr10.dtd"</FONT>><BR> <BR><dwr><BR> <allow><BR> <create creator=<FONT class=java-string>"new"</FONT> javascript=<FONT class=java-string>"Bike"</FONT> scope=<FONT class=java-string>"application"</FONT>><BR> <param name=<FONT class=java-string>"class"</FONT> value=<FONT class=java-string>"onlyfun.caterpillar.Bike"</FONT>/><BR> </create><BR> </allow><BR></dwr><BR></PRE></TD></TR></TBODY></TABLE><BR><BR>我們會有個腳踏車年份與型號查詢頁面:
<BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR>11<BR>12<BR>13<BR>14<BR>15<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE><!DOCTYPE HTML PUBLIC <FONT class=java-string>"-//W3C//DTD HTML 4.01 Transitional//EN"</FONT>><BR><html><BR><head><BR><meta http-equiv=<FONT class=java-string>"Content-Type"</FONT> content=<FONT class=java-string>"text/html; charset=BIG5"</FONT>><BR><title>Insert title here</title><BR> <script type=<FONT class=java-string>'text/javascript'</FONT> src=<FONT class=java-string>'dwr/interface/Bike.js'</FONT>></script><BR> <script type=<FONT class=java-string>'text/javascript'</FONT> src=<FONT class=java-string>'dwr/engine.js'</FONT>></script><BR> <script type=<FONT class=java-string>'text/javascript'</FONT> src=<FONT class=java-string>'dwr/util.js'</FONT>></script><BR> <script type=<FONT class=java-string>'text/javascript'</FONT> src=<FONT class=java-string>'bike.js'</FONT>></script><BR></head><BR><body onload=<FONT class=java-string>"refreshYearList();"</FONT>><BR> 年份:<select id=<FONT class=java-string>"years"</FONT> onchange=<FONT class=java-string>"refreshBikeList();"</FONT>></select><br/><br/><BR> 型號:<select id=<FONT class=java-string>"bikes"</FONT>></select><br/><BR></body><BR></html><BR></PRE></TD></TR></TBODY></TABLE><BR><BR>注意,在選完第一個年份後,會觸發onchange事件,接著第二個下拉選單會自動填上對應年份的型號,而不是按鈕按下,再去取得第二個下拉選單,然後refresh...blah...blah...
<BR><BR>bike.js如下… <BR>
<TABLE class=java cellSpacing=1 cellPadding=3 bgColor=#999999 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=1 bgColor=#dddddd><PRE><FONT color=#555555>1<BR>2<BR>3<BR>4<BR>5<BR>6<BR>7<BR>8<BR>9<BR>10<BR>11<BR>12<BR>13<BR>14<BR>15<BR>16<BR>17<BR>18<BR>19<BR></FONT></PRE></TD>
<TD vAlign=top align=left bgColor=#ffffff><PRE>function refreshYearList() <FONT class=java-bracket>{</FONT><BR> Bike.getYears(populateYearList);<BR><FONT class=java-bracket>}</FONT><BR> <BR>function populateYearList(list)<FONT class=java-bracket>{</FONT><BR> DWRUtil.removeAllOptions(<FONT class=java-string>"years"</FONT>);<BR> DWRUtil.addOptions(<FONT class=java-string>"years"</FONT>, list);<BR> refreshBikeList();<BR><FONT class=java-bracket>}</FONT><BR> <BR>function refreshBikeList() <FONT class=java-bracket>{</FONT><BR> var year = $(<FONT class=java-string>"years"</FONT>).value;<BR> Bike.getBikes(year, populateBikeList);<BR><FONT class=java-bracket>}</FONT><BR> <BR>function populateBikeList(list)<FONT class=java-bracket>{</FONT><BR> DWRUtil.removeAllOptions(<FONT class=java-string>"bikes"</FONT>);<BR> DWRUtil.addOptions(<FONT class=java-string>"bikes"</FONT>, list);<BR><FONT class=java-bracket>}</FONT> </PRE></TD></TR></TBODY></TABLE><BR><BR>一樣很簡單…
<BR><BR>看個無聊的畫面…XD </SPAN><BR><BR><IMG alt=""
src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/42270937.jpg">
<P class="right articalinfo">发表于 @ <A title=permalink
href="http://blog.csdn.net/caterpillar_here/archive/2006/09/18/1239538.aspx">2006年09月18日
19:33:00</A>|<A title=评论
href="http://blog.csdn.net/caterpillar_here/archive/2006/09/18/1239538.aspx#FeedBack">评论(<SPAN
id=FeedbackCount_1239538>loading...</SPAN>
<SCRIPT type=text/javascript>AddFeedbackCountStack("1239538")</SCRIPT>
)</A>|<A title=编辑
href="http://writeblog.csdn.net/PostEdit.aspx?entryId=1239538">编辑</A></P><SPAN
id=Post.ascx_ViewPost_PreviousAndNextEntriesDown>
<H3 class=pagego><A
href="http://blog.csdn.net/caterpillar_here/archive/2006/09/30/1311605.aspx">新一篇: DWR
入門與應用(三)</A> | <A
href="http://blog.csdn.net/caterpillar_here/archive/2006/09/12/1214514.aspx">旧一篇: 善于遗忘</A></H3></SPAN></DIV></DIV>
<DIV class=commentslist>
<SCRIPT type=text/javascript>
var CurrentEntryId = '1239538';
var CurrentUserName = 'caterpillar_here';
</SCRIPT>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/jquery-1.3.2.min.js"
type=text/javascript></SCRIPT>
<SCRIPT src="DWR 入門與應用(二) - 林信良(良葛格)的专栏 - CSDNBlog.files/feedback.js"
type=text/javascript></SCRIPT>
<DIV id=commentslist></DIV></DIV>
<DIV class=spacecommment></DIV>
<SCRIPT type=text/javascript>
LoadFeedbackCount();
document.write("<img src='http://counter.csdn.net/pv.aspx?id=24' border=0 width=0 height=0>");// 计数器
</SCRIPT>
</DIV></DIV></DIV>
<DIV id=csdnblog_sidebar>
<DIV class=gutter>
<DIV class=aboutauthor>
<DL>
<DT>用户操作
<DD class=middle><A
href="http://passport.csdn.net/UserLogin.aspx?from=http://webim.csdn.net/Messages/caterpillar_here.ashx"
target=_blank>[即时聊天]</A> <A
href="http://passport.csdn.net/UserLogin.aspx?from=http://hi.csdn.net/Admin/WriteMessage.aspx?Receiver=caterpillar_here"
target=_blank>[发私信]</A> <A
href="http://passport.csdn.net/UserLogin.aspx?from=http://webim.csdn.net/AddFriends/caterpillar_here.ashx"
target=_blank>[加为好友]</A>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -