﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-秋风的萧瑟 又见湖边木叶飞-随笔分类-JavaScript</title><link>http://www.blogjava.net/lonleung/category/44563.html</link><description>欢迎来到梁良 | LonBlog，这里记录下了我生活点点滴滴。                                                              </description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2014 13:56:04 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2014 13:56:04 GMT</pubDate><ttl>60</ttl><item><title>Javascript和Ajax中文乱码吐血版解决方案 </title><link>http://www.blogjava.net/lonleung/archive/2014/08/27/417380.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Wed, 27 Aug 2014 00:22:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2014/08/27/417380.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/417380.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2014/08/27/417380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/417380.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/417380.html</trackback:ping><description><![CDATA[<span style="font-size: medium"><span style="font-size: small">&nbsp; 
<p><span style="font-size: medium"><span style="font-size: small">今天弄了一天的Ajax中文乱码问题，Ajax的乱码问题分为两种：</span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: red">1. JavaScript输出的中文乱码，</span></span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: red"><span style="font-size: medium"><span style="font-size: small">比如：alert("中文乱码测试");</span></span></span></span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: red">2. 这第二种就是Ajax从服务器端获得的数据出现乱码的问题。（</span>我搜了n个小时试了n中方法才找到答案）</span></span></p>
<p><span style="font-size: medium"><span style="font-size: small">现在将我搜集的比较有效的方法都与大家分享：（我使用的开发环境是Eclipse，相信其他语言和开发环境都差不太多。）</span></span></p>
<p><span style="font-size: medium"><span style="font-size: small">&nbsp;比如</span></span></p>
<p><span style="font-size: medium">var message = xmlHttp.responseText;<br />&nbsp;alert("message: "+message);</span></p>
<p><span style="font-size: medium">获得这个message输出就是乱码</span></p>
<p><span style="font-size: medium">&nbsp;</span></p>
<p><span style="font-size: medium"><span style="font-size: small">解决办法有两种：</span></span></p></span></span>
<p>&nbsp;</p>
<p><span style="font-size: medium"><span style="font-size: small">（1）在jsp文件里引入js文件时可以这样写：&lt;script Charset="UTF-8" type="text/javascript" src="jslib/jquery-1.4.2.min.js"&gt;&lt;/script&gt;，该方法具有移植性</span></span></p>
<p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: #000000">（2）（该方法可能会导致换一台电脑导入项目后js文件里中文会乱码）. 修改编码。切记要将代码备份一下，改了编码之后中文会变为乱码。</span></span></span></p>
<p><span style="color: #000000"><span style="font-size: medium"><span style="font-size: small">在js文件上右键点击Properties，最好是在菜单栏栏里选择Window--&gt;Perferences(以绝后患)，</span></span><span lang="EN-US"><span style="font-size: medium"><span style="font-size: small">修改Text file encode 为UTF-8（这里应当与jsp中的编码相同）</span></span></span><span style="font-size: medium"><span style="font-size: small">&nbsp;</span></span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><img border="0" src="http://images.cnblogs.com/cnblogs_com/dongritengfei/eclipse设置编码.jpg" width="677" height="765" jquery17037812708455093025="1"  alt="" />&nbsp;</span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: #000000">同样的将JavaScript source file和JSP的Default encoding设置为UTF-8（这里应当与jsp中的编码相同，这样以后的项目就都是utf-8的编码了，推荐使用这个）</span></span></span></p>
<p><span style="font-size: medium"><span style="font-size: small"><span style="color: #000000">（2）. 注意response.setContentType("text/html;charset=utf-8");和PrintWriter out = response.getWriter();的位置关系，切记要将PrintWriter out = response.getWriter();放在response.setContentType("text/html;charset=utf-8");的后面，否则设置的编码将无效，这也是我弄了n久都搞不定的原因！！！</span></span></span></p>
<p><span lang="EN-US"><span style="font-size: medium"><span style="font-size: small">&nbsp;</span></span></span>&nbsp;</p>
<p><span lang="EN-US"><span style="font-size: medium"><span style="font-size: small"><span style="color: red">3. 客户端发给服务器端得中文数据为乱码</span></span></span></span></p>
<p>
<div><span lang="EN-US"><span style="font-size: medium">&nbsp;</span></span></div>
<p>&nbsp;</p><span lang="EN-US"><span style="font-size: medium">
<p>解决办法：示例：客户端的javaScript脚本</p></span></span>
<p>&nbsp;</p>
<p>function verify(){<br />&nbsp;&nbsp;&nbsp; $.get("AJAXServer?name="+<span style="color: red">encodeURI(</span><span style="color: red">encodeURI($("#userName").val())),</span>null,function callback(data){$("#result").html(data);});<br />}</p>
<p><span lang="EN-US"><span style="font-size: medium">﻿注意：<span style="color: red">encodeURI需要使用两次！</span></span></span></p>
<p>服务器端代码:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //1.取参数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;str = request.getParameter("name");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = java.net.URIDecode.decode(str,"UTF-8")&nbsp;</p><img src ="http://www.blogjava.net/lonleung/aggbug/417380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2014-08-27 08:22 <a href="http://www.blogjava.net/lonleung/archive/2014/08/27/417380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PSP版豆瓣电台独家发布 (2012-3-28  更新：公共频道。) </title><link>http://www.blogjava.net/lonleung/archive/2011/05/16/350341.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Mon, 16 May 2011 11:42:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2011/05/16/350341.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/350341.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2011/05/16/350341.html#Feedback</comments><slash:comments>34</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/350341.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/350341.html</trackback:ping><description><![CDATA[<span style="font-family: 黑体; font-size: 24pt"><span style="color: #99cc00; font-size: 8pt"><span style="font-family: 黑体; font-size: 24pt">下载发布<br /></span>&nbsp;<br /></span></span>
<table class="formtable datatable" cellspacing="0" summary="分类信息" cellpadding="0">
<tbody>
<tr>
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">中文名称</span></span></span></th>
<td style="width: 529px; height: 19px"><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; psp版豆瓣电台 (2011年6月24日 更新)</span></span></span></td></tr>
<tr class="colplural">
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">原文名称</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; psp版豆瓣电台</span></span></span></td></tr>
<tr>
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">发行版本<br />开发人员</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 1.1.5<br />&nbsp;&nbsp;LonLeung</span></span></span></td></tr>
<tr class="colplural">
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">游戏类型</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 多媒体</span></span></span></td></tr>
<tr>
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">发行厂商</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 豆瓣 &#169; 2005－2012 douban.com, all rights reserved</span></span></span></td></tr>
<tr class="colplural">
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">容量大小</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 103 KB</span></span></span></td></tr>
<tr>
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">语言</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 中文</span></span></span></td></tr>
<tr class="colplural">
<th><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">其他</span></span></span></th>
<td><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: 微软雅黑">&nbsp; 京ICP证090015号 京ICP备09113438 网络视听许可证0110418号 文网文[2009]267号</span></span></span></td></tr></tbody></table><br /><strong style="color: #800000; font-size: 18pt">安装和使用方法：将压缩包&#8220;psp版豆瓣电台&#8221;文件夹<strong><font color="#800000">中</font></strong>的&#8220;PSP&#8221;文件夹解压在psp根目录中，在<strong><font color="#800000">XMB</font></strong>的&#8220;网络&#8221;-》&#8220;互联网电台&#8221;-》&#8220;douban.fm&#8221;中打开。注意系统选择中文，编码GBK(936)，浏览器文字编码：自动选择</strong><strong style="color: #800000"><br /></strong>
<dl class="t_attachlist">
<dt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>Update：</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</dt></dl>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2010-6-18 新建PSP豆瓣电台项目</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2010-7-20 第一个Demo</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2010-8-8&nbsp; 在1.0.1版本上增加了官方UI</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.3 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-15 PSP豆瓣电台发布</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.4 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-17 新增加20个豆瓣频道，用摇杆光标选择下拉框的频道后自动播放相应频道的歌曲</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-22 新增豆瓣私人频道</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0.6<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-23 新增加红心、去红心、删除歌曲功能</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-24 新增Lee MHz 频道、优化UI</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-25 修正歌曲还差0.5秒未播放完就开始跳歌问题</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-5-27 修正Skip歌曲时延时问题，增加短报告处理方法，删除UI中多余的控件让界面更清爽</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.1.3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-6-1&nbsp; 增加长报告处理方法，使后台的歌曲喜好计算更加准确<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.1.4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-6-10 新增一台服务器，今后开始采取自动脚本更新方式，方便同学们升级。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2011-6-24 作者 Saoirse Ronan 对豆瓣电台图标进行了美化修复 </p>
<dl class="t_attachlist">
<dt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img class="absmiddle" border="0" alt="" src="http://forum.tgbus.com/images/attachicons/rar.gif" width="28" height="30" />&nbsp;psp版豆瓣电台.rar (145.32 KB) 下载地址： 
<dd>
<p>&nbsp;</p>
<p><strike>thunder://QUFodHRwOi8vMTI3LjAuMC4xLzExMDUxNjE4NDlmODdkN2EyOTNhZGRjNWVhLnJhcj9maWQ9ZnVTVnFDTTFNcDVkSlp1eGhMRjlKMjRSNGtwR1JRSUFBQUFBQUs2YldpMGo3SThjK2FRZzdkQ1pyandzWUxXcCZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTRGMjJFOUUyQjkxMjhEN0UxRUNGNTUwMUE4NDNFOTRBJnNyY2lkPTZaWg</strike>==</p><br />(2011年5月18日 更新:新增加二十多个豆瓣频道) 
<dd>&nbsp; 
<dd>115网盘：<a href="http://u.115.com/file/bhnqilut">http://u.115.com/file/bhnqilut</a> 
<dd>&nbsp; 
<dd><strike>&nbsp;thunder://QUFodHRwOi8vMTI3LjAuMC4xL3BzcOeJiOixhueTo+eUteWPsCgyMDExLTUtMTjmm7TmlrApLnJhcj9maWQ9VzVnWEZLbW90cThPOHpldmRnQmxUWFFtcUF1alJRSUFBQUFBQU9nZjBYeHVBaS9TVWZneUlwazN5c2hSL0FBZyZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTU5RDA1MkYwNTJFMTQzQUEwMzg2N0QwNkZBM0YzREQ4JnNyY2lkPTZaWg==<br /><br /></strike>(2011-5-22 更新：新增豆瓣私人频道)<br /><br />115网盘：<a href="http://u.115.com/file/aq86ktqe">http://u.115.com/file/aq86ktqe</a><br /><br />(2011-5-23 更新：新增加红心、去红心、删除歌曲功能)<br />
<dd>115网盘：<a href="http://u.115.com/file/aq86k99f">http://u.115.com/file/aq86k99f</a> 
<dd>&nbsp; 
<dd>(2011-5-24 更新：新增Lee MHz 频道、优化UI) 
<dd>&nbsp; 
<dd>115网盘：<a href="http://u.115.com/file/aq867udi">http://u.115.com/file/aq867udi</a><br /><br />(2011-5-25 更新:修正歌曲还差0.5秒未播放完就开始跳歌问题)<br />
<dd>115网盘：<a href="http://u.115.com/file/e61dkddd">http://u.115.com/file/e61dkddd<br /></a><br />(2011-5-27 更新:修正Skip歌曲时延时问题，增加短报告处理方法，删除UI中多余的控件让界面更清爽)</dd></dl>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 115网盘：<a href="http://u.115.com/file/e61dk1rk">http://u.115.com/file/e61dk1rk</a></p>
<dl class="t_attachlist">
<dd>thunder://QUFodHRwOi8vMTI3LjAuMC4xL3BzcOeJiOixhueTo+eUteWPsCgyMDExLTUtMjfmm7TmlrApLnJhcj9maWQ9M2dVc3dvVG1ZUWlONjlCYndoanZMQ2pPWXJwOG5BRUFBQUFBQU0xSUVyM003TnRiR1ZGY0hWYUE2WXJzejBIZiZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTA2OTAyMjYxOTNGREFEMTgyRjdBNjg3MzU5NjE0Qzc2JnNyY2lkPTZaWg==&nbsp; 
<dd>&nbsp; 
<dd>&nbsp;(2011-6-1 更新: 增加长报告处理方法，使后台的歌曲喜好计算更加准确) 
<dd>&nbsp; 
<dd>&nbsp;dbank网盘：&nbsp;<a href="http://dl.dbank.com/c0pfpb8e53">http://dl.dbank.com/c0pfpb8e53</a>&nbsp; 
<dt><br />
<dt>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;(2012-3-28 更新: 公共频道)&nbsp;<br />&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbank网盘：&nbsp;<a href="http://dl.dbank.com/c0gdv0aj9c">http://dl.dbank.com/c0gdv0aj9c</a><br /></p><br /></dt></dl><img src ="http://www.blogjava.net/lonleung/aggbug/350341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2011-05-16 19:42 <a href="http://www.blogjava.net/lonleung/archive/2011/05/16/350341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向DWR传递map/返回map</title><link>http://www.blogjava.net/lonleung/archive/2010/09/14/331941.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Mon, 13 Sep 2010 17:13:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/09/14/331941.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/331941.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/09/14/331941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/331941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/331941.html</trackback:ping><description><![CDATA[<p><span style="width: 740px" id="articlecontent" onmouseup="NewHighlight(event)" class="wenzhang_con">&nbsp;
<div>1、调用没有返回值和参数的JAVA方法<br />
1.1、dwr.xml的配置<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod1"/&gt;<br />
&lt;/create&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
&lt;allow&gt;标签中包括可以暴露给javascript访问的东西。<br />
&lt;create&gt;标签中指定javascript中可以访问的java类，并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成方式，new意味着DWR应当调用类的默认构造函数来获得实例，其他的还有spring方式，通过与IOC容器Spring进行集成来获得实例等等。javascript=" testClass "属性指定javascript代码访问对象时使用的名称。<br />
&lt;param&gt;标签指定要公开给javascript的java类名。<br />
&lt;include&gt;标签指定要公开给javascript的方法。不指定的话就公开所有方法。<br />
&lt;exclude&gt;标签指定要防止被访问的方法。<br />
1.2、javascript中调用<br />
首先，引入javascript脚本<br />
&lt;script src=&#8216;dwr/interface/ testClass.js&#8216;&gt;&lt;/script&gt;<br />
&lt;script src=&#8216;dwr/engine.js&#8216;&gt;&lt;/script&gt;<br />
&lt;script src=&#8216;dwr/util.js&#8216;&gt;&lt;/script&gt;<br />
其中TestClass.js是dwr根据配置文件自动生成的，engine.js和util.js是dwr自带的脚本文件。<br />
其次，编写调用java方法的javascript函数<br />
Function callTestMethod1(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod1();<br />
}<br />
2、调用有简单返回值的java方法<br />
2.1、dwr.xml的配置<br />
配置同1.1<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod2"/&gt;<br />
&lt;/create&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
2.2、javascript中调用<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数和接收返回值的回调函数<br />
Function callTestMethod2(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod2(callBackFortestMethod2);<br />
}<br />
Function callBackFortestMethod2(data){<br />
&nbsp; &nbsp;&nbsp;&nbsp;//其中date接收方法的返回值<br />
&nbsp; &nbsp;&nbsp;&nbsp;//可以在这里对返回值进行处理和显示等等<br />
alert("the return value is " + data);<br />
}<br />
其中callBackFortestMethod2是接收返回值的回调函数<br />
3、调用有简单参数的java方法<br />
3.1、dwr.xml的配置<br />
配置同1.1<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod3"/&gt;<br />
&lt;/create&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
3.2、javascript中调用<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数<br />
Function callTestMethod3(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//定义要传到java方法中的参数<br />
&nbsp; &nbsp;&nbsp; &nbsp;var data;<br />
&nbsp; &nbsp;&nbsp; &nbsp;//构造参数<br />
&nbsp; &nbsp;&nbsp; &nbsp;data = &#8220;test String&#8221;;<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod3(data);<br />
}<br />
4、调用返回JavaBean的java方法<br />
4.1、dwr.xml的配置<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod4"/&gt;<br />
&lt;/create&gt;<br />
&lt;convert converter="bean" match=""com.dwr.TestBean"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;param name="include" value="username,password" /&gt;<br />
&lt;/convert&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
&lt;creator&gt;标签负责公开用于Web远程的类和类的方法，&lt;convertor&gt;标签则负责这些方法的参数和返回类型。convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。DWR自动地在Java和JavaScript表示之间调整简单数据类型。这些类型包括Java原生类型和它们各自的封装类表示，还有String、Date、数组和集合类型。DWR也能把JavaBean转换成JavaScript 表示，但是出于安全性的原因，要求显式的配置，&lt;convertor&gt;标签就是完成此功能的。converter="bean"属性指定转换的方式采用JavaBean命名规范，match=""com.dwr.TestBean"属性指定要转换的javabean名称，&lt;param&gt;标签指定要转换的JavaBean属性。<br />
4.2、javascript中调用<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数和接收返回值的回调函数<br />
Function callTestMethod4(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod4(callBackFortestMethod4);<br />
}<br />
Function callBackFortestMethod4(data){<br />
&nbsp; &nbsp;&nbsp;&nbsp;//其中date接收方法的返回值<br />
//对于JavaBean返回值，有两种方式处理<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; //不知道属性名称时，使用如下方法<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;for(var property in data){ <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;alert("property:"+property);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;alert(property+":"+data[property]);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}<br />
//知道属性名称时，使用如下方法<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;alert(data.username);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;alert(data.password);<br />
}<br />
其中callBackFortestMethod4是接收返回值的回调函数<br />
5、调用有JavaBean参数的java方法<br />
5.1、dwr.xml的配置<br />
配置同4.1<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod5"/&gt;<br />
&lt;/create&gt;<br />
&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;param name="include" value="username,password" /&gt;<br />
&lt;/convert&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
5.2、javascript中调用<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数<br />
Function callTestMethod5(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//定义要传到java方法中的参数<br />
&nbsp; &nbsp;&nbsp; &nbsp;var data;<br />
&nbsp; &nbsp;&nbsp; &nbsp;//构造参数，date实际上是一个object<br />
&nbsp; &nbsp;&nbsp; &nbsp;data = { username:"user", password:"password" }<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod5(data);<br />
}<br />
6、调用返回List、Set或者Map的java方法<br />
6.1、dwr.xml的配置<br />
配置同4.1<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod6"/&gt;<br />
&lt;/create&gt;<br />
&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br />
&lt;param name="include" value="username,password" /&gt;<br />
&lt;/convert&gt;<br />
&lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
注意：如果List、Set或者Map中的元素均为简单类型（包括其封装类）或String、Date、数组和集合类型，则不需要&lt;convert&gt;标签。<br />
6.2、javascript中调用(以返回List为例，List的元素为TestBean)<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数和接收返回值的回调函数<br />
Function callTestMethod6(){<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod6(callBackFortestMethod6);<br />
}<br />
Function callBackFortestMethod6(data){<br />
&nbsp; &nbsp;&nbsp;&nbsp;//其中date接收方法的返回值<br />
//对于JavaBean返回值，有两种方式处理<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; //不知道属性名称时，使用如下方法<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;for(var i=0;i&lt;data.length;i++){<br />
for(var property in data){ <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert("property:"+property);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert(property+":"+data[property]);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;}<br />
}<br />
//知道属性名称时，使用如下方法<br />
for(var i=0;i&lt;data.length;i++){<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert(data.username);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert(data.password);<br />
}<br />
}<br />
7、调用有List、Set或者Map参数的java方法<br />
7.1、dwr.xml的配置<br />
&lt;dwr&gt;<br />
&lt;allow&gt;<br />
&lt;create creator="new" javascript="testClass" &gt;<br />
&lt;param name="class" value="com.dwr.TestClass" /&gt;<br />
&lt;include method="testMethod7"/&gt;<br />
&lt;/create&gt;<br />
&lt;convert converter="bean" match="com.dwr.TestBean"&gt;<br />
&lt;param name="include" value="username,password" /&gt;<br />
&lt;/convert&gt;<br />
&lt;/allow&gt;<br />
&lt;signatures&gt;<br />
&lt;![CDATA[ <br />
import java.util.List; <br />
import com.dwr.TestClass; <br />
import com.dwr.TestBean; <br />
TestClass.testMethod7(List&lt;TestBean&gt;); <br />
]]&gt;<br />
&lt;/signatures&gt;<br />
&lt;/dwr&gt;<br />
&lt;signatures&gt;标签是用来声明java方法中List、Set或者Map参数所包含的确切类，以便java代码作出判断。<br />
7.2、javascript中调用(以返回List为例，List的元素为TestBean)<br />
首先，引入javascript脚本<br />
其次，编写调用java方法的javascript函数<br />
Function callTestMethod7(){<br />
//定义要传到java方法中的参数<br />
&nbsp; &nbsp;&nbsp; &nbsp;var data;<br />
&nbsp; &nbsp;&nbsp; &nbsp;//构造参数，date实际上是一个object数组，即数组的每个元素均为object<br />
data = [<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; {<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; username:"user1", <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; password:"password2"<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; },<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; {<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; username:"user2",<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; password:" password2"<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;];<br />
&nbsp; &nbsp;&nbsp; &nbsp;testClass.testMethod7(data);<br />
}<br />
注意：<br />
1、对于第6种情况，如果java方法的返回值为Map，则在接收该返回值的javascript回调函数中如下处理：<br />
function callBackFortestMethod(data){<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//其中date接收方法的返回值<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;for(var property in data){ <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;var bean = data[property];<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert(bean.username);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;alert(bean.password);<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}<br />
}<br />
2、对于第7种情况，如果java的方法的参数为Map（假设其key为String，value为TestBean），则在调用该方法的javascript函数中用如下方法构造要传递的参数：<br />
function callTestMethod (){<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//定义要传到java方法中的参数<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var data;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//构造参数，date实际上是一个object，其属性名为Map的key，属性值为Map的value<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;data = {<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "key1":{<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;username:"user1", <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; password:"password2"<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; },<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "key2":{<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; username:"user2",<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; password:" password2"<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;};<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;testClass.testMethod(data);<br />
}<br />
并且在dwr.xml中增加如下的配置段<br />
&lt;signatures&gt;<br />
&lt;![CDATA[ <br />
import java.util.List; <br />
import com.dwr.TestClass; <br />
import com.dwr.TestBean; <br />
TestClass.testMethod7(Map&lt;String,TestBean&gt;); <br />
]]&gt;<br />
&lt;/signatures&gt;<br />
3、由以上可以发现，对于java方法的返回值为List(Set)的情况，DWR将其转化为Object数组，传递个javascript；对于java方法的返回值为Map的情况，DWR将其转化为一个Object，其中Object的属性为原Map的key值，属性值为原Map相应的value值。<br />
4、如果java方法的参数为List(Set)和Map的情况，javascript中也要根据3种所说，构造相应的javascript数据来传递到java中。</div>
</span></p>
<img src ="http://www.blogjava.net/lonleung/aggbug/331941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-09-14 01:13 <a href="http://www.blogjava.net/lonleung/archive/2010/09/14/331941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国产开源在线HTML编辑器 xhEditor v1.1.0正式发布</title><link>http://www.blogjava.net/lonleung/archive/2010/09/02/330673.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Thu, 02 Sep 2010 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/09/02/330673.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/330673.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/09/02/330673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/330673.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/330673.html</trackback:ping><description><![CDATA[xhEditor是一个基于jQuery开发的简单迷你并且高效的轻量可视化XHTML编辑器，基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。此次v1.1.0版主要变化在于提升编辑器用户体验，在修正大量问题的基础上增加了各种提升用户体验的实用功能，例如HTML5功能支持下的直接将文件拖入编辑区域上传功能，就能极大的提高用户操作效率，改善使用体验。
<p>我们不是最好的，但是我们会努力做的更好，我们愿意倾听和接受所有用户的心声。最后，大家在使用过程中若发现任何的问题，或者有比较好的创意和想法，可以随时向我们反馈(yanis.wang@gmail.com)，我们会随时倾听大家的意见，xhEditor的发展离不开大家的支持。<br />
<br />
<strong>本次v1.1.0版本主要变化如下</strong>：<br />
1，可自定义表情根路径(emotPath参数)<br />
2，提供本地图片等资源文件的前后台路径不一致问题的解决方案(urlBase参数)<br />
3，双击链接、图片等直接打开修改界面<br />
4，Word代码粘贴过滤功能由原先的IE only改为跨浏览器兼容<br />
5，强制粘贴为文本功能(forcePasteText参数)<br />
6，将本地电脑直接拖入编辑区域即可上传在当前光标处，此功能需要HTML5上传支持(Firefox,Chrome)<br />
<br />
<strong>完整更新列表如下</strong>：<br />
ver 1.1.0 (2010-9-1)<br />
1. 添加：添加由网友shiny原创设计的皮肤NoStyle<br />
2. 添加：demo07 UBB演示页面添加Google地图插件，也作为不定宽按钮的演示<br />
3. 添加：添加urlType转非相对路径中合并&#8220;..&#8221;到上一级路径的功能<br />
4. 添加：添加emotPath初始化参数，以将表情指向其它自定义URL路径下，注意路径必需以&#8220;/&#8221;结尾<br />
5. 添加：添加urlBase初始化参数，用来定义超链接、图片及Flash等文件的相对根路径，同时也是urlType参数的参考根路径<br />
6. 添加：经用户反馈意见，重新添加&#8220;预览&#8221;功能按钮<br />
7. 添加：添加双击超链接、图片、Flash和多媒体可直接打开相应修改界面的功能，注：某些浏览器双击Flash和多媒体会有问题<br />
8. 添加：打开面板时可按Esc键隐藏当前的面板<br />
9. 添加：初始化参数添加disableContextmenu，用以禁用浏览器在编辑区域的默认右键菜单，设置为true禁用，默认不禁用<br />
10.添加：Word粘贴自动过滤功能由原先的IE only增加为跨浏览器兼容<br />
11.添加：添加强制粘贴为文本功能，初始化参数forcePasteText设置为true开启此功能，默认不强制文本<br />
12.添加：添加Pidgin和IPB两套表情，并在demo05和demo07中添加相应的配置演示<br />
13.添加：初始化参数添加editorRoot，在某些特殊情况下定位编辑器的根路径<br />
14.添加：将本地电脑中的多个文件拖放至编辑器的编辑区即可上传并插入，此功能需要浏览器支持HTML5上传(Firefox,Chrome)<br />
<br />
1. 修正：showIframeModal上传模式下onUpload接口无效问题的修正<br />
2. 修正：使用无效按钮名称会导致JS出错问题的修正<br />
3. 修正：IE6,IE7在iframe框架中使用xhEditor会在页面中出现_xhe_cursor问题的修正<br />
4. 修正：IE浏览器在图片、FLASH等控件上按Backspace会导致整个页面后退问题的修正<br />
5. 修正：回车BR模式在IE浏览器下，按下回车只显示一个空格不换行问题的修正<br />
6. 修正：IE浏览器中会造成内存泄漏问题的修正<br />
7. 修正：WebKit内核浏览器回车换行在切换一次源代码后会丢失问题的修正<br />
<br />
1. 调整：皮肤框架进行了调整，支持不定宽按钮，需要的用户可自行设计修改<br />
2. 调整：为使按钮配置更直观简便，原按钮分隔符Separator变更为&#8220;|&#8221;，原按钮换行符BtnBr变更为&#8220;/&#8221;<br />
3. 调整：原localUrl参数名变更为urlType<br />
<br />
查看最新版演示：<a href="http://xheditor.com/demo">http://xheditor.com/demo</a><br />
<br />
<strong>更多官方在线演示</strong>：<br />
&nbsp;&nbsp; 1. 默认模式：<a href="http://xheditor.com/demos/demo01.html">http://xheditor.com/demos/demo01.html</a><br />
&nbsp;&nbsp; 2. 自定义按钮：<a href="http://xheditor.com/demos/demo02.html">http://xheditor.com/demos/demo02.html</a><br />
&nbsp;&nbsp; 3. 皮肤选择：<a href="http://xheditor.com/demos/demo03.html">http://xheditor.com/demos/demo03.html</a><br />
&nbsp;&nbsp; 4. 其它选项：<a href="http://xheditor.com/demos/demo04.html">http://xheditor.com/demos/demo04.html</a><br />
&nbsp;&nbsp; 5. Javascript交互：<a href="http://xheditor.com/demos/demo05.html">http://xheditor.com/demos/demo05.html</a><br />
&nbsp;&nbsp; 6. 非utf-8编码网页调用：<a href="http://xheditor.com/demos/demo06.html">http://xheditor.com/demos/demo06.html</a><br />
&nbsp;&nbsp; 7. UBB可视化编辑：<a href="http://xheditor.com/demos/demo07.html">http://xheditor.com/demos/demo07.html</a><br />
&nbsp;&nbsp; 8. Ajax文件上传：<a href="http://xheditor.com/demos/demo08.html">http://xheditor.com/demos/demo08.html</a><br />
&nbsp;&nbsp; 9. 插件扩展：<a href="http://xheditor.com/demos/demo09.html">http://xheditor.com/demos/demo09.html</a><br />
&nbsp;&nbsp; 10.iframe调用文件上传：<a href="http://xheditor.com/demos/demo10.html">http://xheditor.com/demos/demo10.html</a><br />
&nbsp;&nbsp; 11.异步加载：<a href="http://xheditor.com/demos/demo11.html">http://xheditor.com/demos/demo11.html</a><br />
<br />
<strong>最新v1.1.0下载地址</strong>：<br />
<a href="http://xheditor.com/download">http://xheditor.com/download</a></p>
<img src ="http://www.blogjava.net/lonleung/aggbug/330673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-09-02 10:18 <a href="http://www.blogjava.net/lonleung/archive/2010/09/02/330673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZT]用JavaScript修改CSS属性</title><link>http://www.blogjava.net/lonleung/archive/2010/08/06/328173.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Fri, 06 Aug 2010 14:44:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/08/06/328173.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/328173.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/08/06/328173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/328173.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/328173.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;<br />
exmpall<br />
&lt;/title&gt;<br />
&lt;meta content="text/html; charset=utf-8" http-equiv="content-type"/&gt;<br />
&lt;STYLE type="text/css"&gt;<br />
div{<br />
padding: 0;<br />
margin: 0;<br />
position: absolute;<br />
left:200px; /*左边*/<br />
top:0;&nbsp;&nbsp; /*上面*/<br />
display: none; <br />
width: 180px; <br />
height: 150px;<br />
border-style: solid;<br />
border-color: #E6C963;<br />
border-width: thin;<br />
}<br />
&lt;/STYLE&gt;<br />
&lt;SCRIPT TYPE="text/javascript"&gt;<br />
&lt;!--<br />
function myfunction1()<br />
{<br />
var my=document.getElementById("chenyi");<br />
my.style.position = "absolute";<br />
my.style.top = "50px";&nbsp;&nbsp; /*上面*/<br />
my.style.display = "inline"; <br />
my.style.backgroundColor = "#E4A17C";<br />
}<br />
<br />
function myfunction2()<br />
{<br />
var my=document.getElementById("chenyi");<br />
my.style.position = "absolute";<br />
my.style.top = "150px";&nbsp;&nbsp; /*上面*/<br />
my.style.display = "inline"; <br />
my.style.backgroundColor = "#A3935F";<br />
}<br />
<br />
function myfunction3()<br />
{<br />
var my=document.getElementById("chenyi");<br />
my.style.position = "absolute";<br />
my.style.top = "200px";&nbsp;&nbsp; /*上面*/<br />
my.style.display = "inline"; <br />
my.style.backgroundColor = "#79851A";<br />
}<br />
<br />
function myfunction4()<br />
{<br />
var my=document.getElementById("chenyi");<br />
my.style.position = "absolute";<br />
my.style.top = "300px";&nbsp;&nbsp; /*上面*/<br />
my.style.display = "inline"; <br />
my.style.backgroundColor = "#ACACA9";<br />
}<br />
<br />
function myfunction5()<br />
{<br />
var my=document.getElementById("chenyi");<br />
my.style.position = "absolute";<br />
my.style.top = "400px";&nbsp;&nbsp; /*上面*/<br />
my.style.display = "inline"; <br />
my.style.backgroundColor = "#B38DD9";<br />
}<br />
// --&gt;<br />
&lt;/SCRIPT&gt;<br />
&lt;/head&gt;<br />
<br />
&lt;body&gt;<br />
&lt;FORM method="post" action=""&gt;<br />
&lt;br /&gt;&lt;br /&gt;<br />
&lt;INPUT name="text1" type="text" onmouseover="myfunction1()"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<br />
&lt;INPUT name="text2" type="text" onmouseover="myfunction2()"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<br />
&lt;INPUT name="text3" type="text" onmouseover="myfunction3()"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<br />
&lt;INPUT name="text4" type="text" onmouseover="myfunction4()"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<br />
&lt;INPUT name="text5" type="text" onmouseover="myfunction5()"&gt;&lt;br /&gt;&lt;br /&gt;<br />
&lt;/FORM&gt;<br />
&lt;div id="chenyi"&gt;<br />
&lt;ol&gt;<br />
&lt;li&gt;&lt;a href="http://hi.baidu.com/515314237/blog"&gt;高兴&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;php&lt;/li&gt;<br />
&lt;li&gt;asp.net&lt;/li&gt;<br />
&lt;li&gt;javaEE&lt;/li&gt;<br />
&lt;li&gt;javascript&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<img src ="http://www.blogjava.net/lonleung/aggbug/328173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-08-06 22:44 <a href="http://www.blogjava.net/lonleung/archive/2010/08/06/328173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国产开源XHTML在线编辑器 xhEditor v1.0.0正式版发布</title><link>http://www.blogjava.net/lonleung/archive/2010/07/02/325102.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Fri, 02 Jul 2010 11:43:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/07/02/325102.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/325102.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/07/02/325102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/325102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/325102.html</trackback:ping><description><![CDATA[<a href="/topics/128.htm"></a>
<p><strong>xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化XHTML编辑器，基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。</strong><br />
在众多用户不断的问题回馈和意见反馈下，经过长达1年零3 个月的不断完善后，v1系列的正式版本v1.0.0 Final终于正式对外发布。经过这么久的不断开发修正和完善，v1.0.0 Final的BUG数量相对已经非常少，我们有自信可以给大家交上一份满意的答卷。</p>
<p>我们不是最好的，但是我们会努力做的更好，我们愿意倾听和接受所有用户的心声。最后，大家在使用过程中若发现任何的问题，或者有比较好的创意和想法，可以随时向我们反馈(yanis.wang@gmail.com)，我们会随时倾听大家的意见，xhEditor的发展离不开大家的支持。<br />
<br />
查看最新版演示：<a href="http://xheditor.com/demo">http://xheditor.com/demo</a><br />
<br />
<strong>更多官方在线演示：</strong><br />
&nbsp;&nbsp; 1. 默认模式：<a href="http://xheditor.com/demos/demo01.html">http://xheditor.com/demos/demo01.html</a><br />
&nbsp;&nbsp; 2. 自定义按钮：<a href="http://xheditor.com/demos/demo02.html">http://xheditor.com/demos/demo02.html</a><br />
&nbsp;&nbsp; 3. 皮肤选择：<a href="http://xheditor.com/demos/demo03.html">http://xheditor.com/demos/demo03.html</a><br />
&nbsp;&nbsp; 4. 其它选项：<a href="http://xheditor.com/demos/demo04.html">http://xheditor.com/demos/demo04.html</a><br />
&nbsp;&nbsp; 5. Javascript交互：<a href="http://xheditor.com/demos/demo05.html">http://xheditor.com/demos/demo05.html</a><br />
&nbsp;&nbsp; 6. 非utf-8编码网页调用：<a href="http://xheditor.com/demos/demo06.html">http://xheditor.com/demos/demo06.html</a><br />
&nbsp;&nbsp; 7. UBB可视化编辑：<a href="http://xheditor.com/demos/demo07.html">http://xheditor.com/demos/demo07.html</a><br />
&nbsp;&nbsp; 8. Ajax文件上传：<a href="http://xheditor.com/demos/demo08.html">http://xheditor.com/demos/demo08.html</a><br />
&nbsp;&nbsp; 9. 插件扩展：<a href="http://xheditor.com/demos/demo09.html">http://xheditor.com/demos/demo09.html</a><br />
&nbsp;&nbsp; 10.iframe调用文件上传：<a href="http://xheditor.com/demos/demo10.html">http://xheditor.com/demos/demo10.html</a><br />
&nbsp;&nbsp; 11.异步加载：<a href="http://xheditor.com/demos/demo11.html">http://xheditor.com/demos/demo11.html</a><br />
<br />
<strong>最新1.0.0 Final版本更新内容(2010-7-1)：</strong><br />
&nbsp;&nbsp; 1. 添加：添加html5Upload参数，用以关闭HTML5上传功能，若关闭HTML5上传，则upMultiple参数无效<br />
&nbsp;&nbsp; 2. 添加：添加delShortcuts API接口，以供插件或者外部动态的删除快捷键<br />
<br />
&nbsp;&nbsp; 1. 修正：UBB模块背景色在Firefox浏览器下某些情况会丢失问题的修正<br />
&nbsp;&nbsp; 2. 修正：IE6浏览器直接在标签内调用初始化JS代码失败问题的修正<br />
&nbsp;&nbsp; 3. 修正：插件代码在IE的某些特殊情况会造成焦点丢失问题的修正<br />
&nbsp;&nbsp; 4. 修正：Firefox浏览器下用jQuery的load动态加载带编辑器代码页面无效问题的修正<br />
&nbsp;&nbsp; 5. 修正：从Word文档粘贴内容在Chrome浏览器中清理不完全问题的修正<br />
&nbsp;&nbsp; 6. 修正：inlineStyle参数无效问题的修正<br />
&nbsp;&nbsp; 7. 修正：IE浏览器粘贴无法清理Word文档问题的修正<br />
<br />
&nbsp;&nbsp; 1. 调整：优化初始化代码以提高初始化速度<br />
&nbsp;&nbsp; 2. 调整：考虑到&#8220;关于&#8221;按钮自动显示容易影响正常用户使用体验，特关闭此按钮的自动显示功能<br />
&nbsp;&nbsp; 3. 调整：考虑php的json支持需要5.2版本以上才支持，对演示上传程序upload.php进行了适当的调节以提高兼容性，并同时优化了某些代码流程<br />
&nbsp;&nbsp; 4. 调整：upMultiple参数由原先的逻辑值，变更为数值型，代表允许一次最大上传文件数，允许值：大于0的整数，等于1代表关闭多文件选择<br />
&nbsp;&nbsp; 5. 调整：缩略图等参数分隔符逗号：&#8220;,&#8221;在非常多的特殊URL中容易出现，因此变更为：&#8220;||&#8221;<br />
&nbsp;&nbsp; 6. 调整：根据用户反馈意见，将默认表情变更为QQ表情<br />
&nbsp;&nbsp; 7. 调整：某些按钮的功能代码中使用title属性传值，会与某些toolTip插件冲突，因此变更传值属性值以提高兼容性<br />
&nbsp;&nbsp; 8. 调整：关闭所有textarea在Chrome浏览器中的拖动改变大小功能<br />
&nbsp;&nbsp; <br />
<strong>最新v1.0.0 Final下载地址：</strong><br />
<a href="http://xheditor.com/download">http://xheditor.com/download</a><br />
</p>
<img src ="http://www.blogjava.net/lonleung/aggbug/325102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-07-02 19:43 <a href="http://www.blogjava.net/lonleung/archive/2010/07/02/325102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]css透明、半透明层</title><link>http://www.blogjava.net/lonleung/archive/2010/06/22/324212.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Tue, 22 Jun 2010 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/06/22/324212.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/324212.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/06/22/324212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/324212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/324212.html</trackback:ping><description><![CDATA[<p>这个效果在IE和Mozilla浏览器上都可以工作，代码如下</p>
<p><strong><font color="#003300">1.HTML页面直接写</font></strong></p>
<p>&lt;img alt="powerbookg4.jpg" src="archives/images/powerbookg4.jpg" width="250" height="60" style="-moz-opacity:0.5; filter:alpha(opacity=50);cursor:pointer;" /&gt;</p>
<p><strong><font color="#003300">2.JS中写</font></strong></p>
<p>在IE中需要通过"filter"来定义透明度"opacity"，而在Mozilla中是可以直接解析"opacity",所以如果要使得这个效 果在两种浏览器中都得到支持，需要把两种设定都加进去。针对IE的设定：this.filters.alpha.opacity=50　而针对 Mozilla的设定：this.style.MozOpacity=0.5</p>
<p><strong><font color="#003300">3.CSS样式表中写</font></strong></p>
<p>css代码里这样写就可以： <br />
.div { <br />
&nbsp;&nbsp;&nbsp;&nbsp; filter:alpha(opacity=50);/*IE*/ <br />
&nbsp;&nbsp;&nbsp;&nbsp; opacity:0.5;/*Mozilla*/ <br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<img src ="http://www.blogjava.net/lonleung/aggbug/324212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-06-22 21:31 <a href="http://www.blogjava.net/lonleung/archive/2010/06/22/324212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>KindEditor 3.5 发布，开源的HTML在线编辑器</title><link>http://www.blogjava.net/lonleung/archive/2010/06/20/324017.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Sun, 20 Jun 2010 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/06/20/324017.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/324017.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/06/20/324017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/324017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/324017.html</trackback:ping><description><![CDATA[<h3 id="news_title">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.5版本是3.x系列的改进版本，除了修复3.4.4版本的BUG之外，还有表格编辑、界面优化，多语言、新API等功能的增加和改善，本次更新 对代码改动较大，不兼容低版本的皮肤，但兼容低版本的插件。<br />
主要变化： </h3>
<p>1）表格：插入表格采用dialog，可设置常用属性。插入表格后在表格上点击右键弹出表格控制菜单。
<p>2）右键菜单（contextmenu）：支持左侧小图标、分割线，外观更美观。</p>
<p>3）菜单（menu）：标题、字体、文字大小、颜色可以反映当前状态。</p>
<p>4）表情：增加分页和预览，通过allowPreviewEmoticons属性可关闭预览表情功能。</p>
<p>5）弹出框（dialog）：弹出框支持阴影效果，通过shadowMode可关闭阴影效果。</p>
<p>6）国际化：3.5版本开始所有中文都提取到一个js里，制作其它语言版本只需要翻译src/lang/zh_CN.js即可。</p>
<p>7）新接口：引入KE.html, KE.text, KE.selectedHtml, KE.insertHtml, KE.appendHtml, KE.isEmpty等函数。</p>
<p>其它改善和bugfix：</p>
<p>--------</p>
<p>* 改善: 编辑器底部显示向下拖动指示图标。</p>
<p>* 改善: 点击编辑器外的页面其它部位时关闭菜单。</p>
<p>* 改善: 移除编辑器时将编辑器内容设置到原来的textarea。</p>
<p>* 改善: 从外部粘贴内容时自动将font转换成span标签。</p>
<p>* 改善: ASP.NET程序改成ashx，使用时不需要编译。</p>
<p>* BUG: 改善了文章内容比较多时速度比较慢的问题。</p>
<p>* BUG: 修改了在IE上选中图片或表格后无法用backspace键删除的问题。</p>
<p>* BUG: 修改了在Firefox上全屏后浏览器一直处于加载状态的问题。</p>
<p>* BUG: 修改了在非IE上DOMContentLoaded事件不起作用的问题。</p>
<p>* BUG: 修改了删除编辑器时没有销毁事件的问题。</p>
<p>* BUG: 修改了设置成无颜色时其它样式也被删除的问题。</p>
<p>* BUG: 修改了拖动时拖到浏览器外面放开鼠标后会粘住的问题。</p>
<p>* BUG: 修改了在Firefox上pre标签自动生成br标签的问题。</p>
<p>* BUG: 修改了在IE6上用KE.cmd.wrap方法设置class属性后没有效果的问题。</p>
<p>* BUG: 修改了在P标签内没选中内容时无法插入超级链接的问题。</p>
<p>* BUG: 修改了使用快捷键加粗体、斜体、下划线时没有同步的问题。</p>
<p>演示：</p>
<p>--------</p>
<p><a href="http://www.kindsoft.net/demo.php" target="_blank">http://www.kindsoft.net/demo.php</a></p>
<p>下载：</p>
<p>--------</p>
<p><a href="http://www.kindsoft.net/down.php" target="_blank">http://www.kindsoft.net/down.php</a></p>
<img src ="http://www.blogjava.net/lonleung/aggbug/324017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-06-20 21:53 <a href="http://www.blogjava.net/lonleung/archive/2010/06/20/324017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>location.reload和location.replace刷新页面的区别</title><link>http://www.blogjava.net/lonleung/archive/2010/06/08/323057.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Tue, 08 Jun 2010 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/06/08/323057.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/323057.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/06/08/323057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/323057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/323057.html</trackback:ping><description><![CDATA[<p>location.reload和location.replace都可以实现页面的刷新，他们的区别是什么？<br />
reload 方法，该方法强迫浏览器刷新当前页面。<br />
语法： location.reload([bForceGet]) <br />
参数： bForceGet， 可选参数， 默认为 false，从客户端缓存里取当前页。<br />
true, 则以 GET 方式，从服务端取最新的页面, 相当于客户端点击 F5("刷新")</p>
<p>replace 方法，该方法通过指定URL替换当前缓存在历史里（客户端）的项目，因此当使用replace方法之后，你不能通过&#8220;前进&#8221;和&#8220;后退&#8221;来访问已经被替换的URL。<br />
语法： location.replace(URL) <br />
参数： URL</p>
<p>在实际应用的时候，重新刷新页面的时候，我们通常使用： location.reload() 或者是 history.go(0) 来做。因为这种做法就像是客户端点F5刷新页面，所以页面的method="post"的时候，会出现&#8220;网页过期&#8221;的提示。那是因为Session的安全保护机制。可以想到： 当调用 location.reload() 方法的时候， aspx页面此时在服务端内存里已经存在， 因此必定是 IsPostback 的。如果有这种应用： 我们需要重新加载该页面，也就是说我们期望页面能够在服务端重新被创建， 我们期望是 Not IsPostback 的。这里，location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写： location.replace(location.href)<br />
</p>
<img src ="http://www.blogjava.net/lonleung/aggbug/323057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-06-08 15:10 <a href="http://www.blogjava.net/lonleung/archive/2010/06/08/323057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZT]胡搞瞎搞JScript记（用JScript代替批处理文件）</title><link>http://www.blogjava.net/lonleung/archive/2010/06/08/323012.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Mon, 07 Jun 2010 16:25:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/06/08/323012.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/323012.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/06/08/323012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/323012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/323012.html</trackback:ping><description><![CDATA[今天下午项目经理老蔡同志分配给我一个光荣任务，做一个批处理文件把某个文件夹下的.exe文件和所有子目录下的.exe文件复制到另外一个文件夹，并且不复制文件夹结构，也就是所有都放到目标目录下不分级。<br />
<br />
&nbsp;&nbsp;&nbsp; 上网找了会资料没找着，后来在命令提示符下随便输入几个自己知道的命令看看帮助，发现XCopy很容易就可以实现复制指定目录下文件与所有子目录下文件到目标目录中，于是简单写了一段：<br />
<br />
&nbsp;&nbsp;&nbsp; xcopy F:\A\*.exe F:\B\&nbsp;/S<br />
<br />
&nbsp;&nbsp;&nbsp; 运行了下，好像可以哦～～于是就跟老蔡说OK啦！结果自己再测试下发现xcopy会把子目录结构也复制过去。。。。晕，那还不如自己复制粘贴呢。于是在命令行提示符窗口下又看了会xcopy的参数说明，就是找不到不复制目录结构的。。。<img border="0" src="http://www.blogjava.net/Emoticons/emdgust.gif" width="19" height="19"  alt="" /><br />
<br />
&nbsp;&nbsp;&nbsp; 怎么办。。。还不如我写个C#程序来得快呢。。。可是要用这个程序的同事机器上好像没有.NET运行时啊，.NET运行时有时候就是很气人，关键时候经常发现对方没有装.NET运行环境，比如有时候要跟人家吹牛我做了什么好玩的，运行不了兴致都没了。<img border="0" src="http://www.blogjava.net/Emoticons/72_72.gif" width="19" height="19"  alt="" /><br />
<br />
&nbsp;&nbsp;&nbsp; 用C写吧，打开VS，建了个命令行项目，然后。。。。怎么写？忘记啦。。。写C语言已经是快3年前的事情了，获取目录和子目录我都不记得用什么函数了。上网找了会，各式各样都有，唉，真烦～～不用C写了。<img border="0" src="http://www.blogjava.net/Emoticons/angry_smile.gif" width="19" height="19"  alt="" /><br />
<br />
&nbsp;&nbsp; 想起昨天晚上翻旧电子书时看到《Windows脚本技术》里有讲到用JScript操作文件呢，于是赶快找出这本书。模仿里面的代码写了一段<br />
&nbsp;&nbsp;&nbsp;
<div style="border-bottom: #000000 1px dotted; border-left: #000000 1px dotted; padding-bottom: 4px; background-color: #ffffff; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #000000 1px dotted; border-right: #000000 1px dotted; padding-top: 4px"><font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">var</span></font><font size="2"><span style="color: #000000">&nbsp;fso,&nbsp;f1;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />fso&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ActiveXObject(</span><span style="color: #000000">"</span><span style="color: #000000">Scripting.FileSystemObject</span><span style="color: #000000">"</span></font><font size="2"><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />f1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fso.GetFile(</span><span style="color: #000000">"</span><span style="color: #000000">c:\\test.txt</span><span style="color: #000000">"</span><span style="color: #000000">);</span></font></div>
<br />
<font size="2">&nbsp;&nbsp;&nbsp;保存为.js文件， 双击，怎么又是用编辑器开了。。。右击，里面有个&#8220;在命令行中运行&#8221;，这个应该不是默认的吧，不管了，运行看看。结果啥也没有出现。。。<br />
<br />
&nbsp;&nbsp;&nbsp; 赶紧再看看书上怎么说，原来下一章才开始讲Windows脚本舍主，嘿嘿，还有一节叫：运行脚本，看来我太心急了，再继续看看。<br />
<br />
&nbsp;&nbsp;&nbsp; 原来可以做一个.wsf文件运行啊，而且还可以混合不同语言的脚本。。神奇啊。<br />
<br />
&nbsp;&nbsp;&nbsp; 里面有这样一段示例代码：<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font>
<div style="border-bottom: #000000 1px dotted; border-left: #000000 1px dotted; padding-bottom: 4px; background-color: #ffffff; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #000000 1px dotted; border-right: #000000 1px dotted; padding-top: 4px"><font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">job&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="IncludeExample"</span><span style="color: #0000ff">&gt;</span></font><span style="color: #000000"><br />
<font size="2"><img id="Codehighlighter1_70_195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_70_195_Open_Text.style.display='none'; Codehighlighter1_70_195_Closed_Image.style.display='inline'; Codehighlighter1_70_195_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_70_195_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_70_195_Closed_Text.style.display='none'; Codehighlighter1_70_195_Open_Image.style.display='inline'; Codehighlighter1_70_195_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;</font></span><font size="2"><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="JScript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="FSO.JS"</span><span style="color: #0000ff">/&gt;</span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_70_195_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></span></font><span id="Codehighlighter1_70_195_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">&lt;</span><span style="background-color: #f5f5f5; color: #000000">script&nbsp;language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">VBScript</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">&gt;</span></font><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;获得驱动器&nbsp;C&nbsp;的可用空间。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;GetFreeSpace(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">c:</span><span style="background-color: #f5f5f5; color: #000000">"</span></font><font size="2"><span style="background-color: #f5f5f5; color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WScript.Echo&nbsp;s<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">&lt;</span><span style="background-color: #f5f5f5; color: #000000">sScript</span><span style="background-color: #f5f5f5; color: #000000">&gt;</span></font><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">&lt;/</span><span style="background-color: #f5f5f5; color: #000000">job</span><span style="background-color: #f5f5f5; color: #000000">&gt;</span></font></div>
</span><br />
<font size="2">&nbsp;&nbsp;&nbsp; 于是我举一反三，自己做了一个，嘿嘿，经过一番调试，终于做了一个可以复制目录和子目录下所有.exe文件到指定目录的wsf文件，哈哈。<img border="0" src="http://www.blogjava.net/Emoticons/emteeth.gif" width="19" height="19"  alt="" /><br />
<br />
</font>
<div style="border-bottom: #000000 1px dotted; border-left: #000000 1px dotted; padding-bottom: 4px; background-color: #ffffff; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #000000 1px dotted; border-right: #000000 1px dotted; padding-top: 4px"><font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">job&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="IncludeExample"</span><span style="color: #0000ff">&gt;</span></font><span style="color: #000000"><br />
<font size="2"><img id="Codehighlighter1_55_489_Open_Image" onclick="this.style.display='none'; Codehighlighter1_55_489_Open_Text.style.display='none'; Codehighlighter1_55_489_Closed_Image.style.display='inline'; Codehighlighter1_55_489_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_55_489_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_55_489_Closed_Text.style.display='none'; Codehighlighter1_55_489_Open_Image.style.display='inline'; Codehighlighter1_55_489_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</font></span><font size="2"><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="JScript"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_55_489_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></span></font><span id="Codehighlighter1_55_489_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><font size="2"><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;file&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">*.exe</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">要复制的文件</span></font><span style="background-color: #f5f5f5; color: #008000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;des&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">F:\\B</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">目标目录</span></font><span style="background-color: #f5f5f5; color: #008000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></font></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span style="background-color: #f5f5f5; color: #0000ff"><font size="2">var</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">&nbsp;fso,&nbsp;&nbsp;f,&nbsp;fs,&nbsp;fc;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">new</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;ActiveXObject(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">Scripting.FileSystemObject</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">文件系统控件</span></font><span style="background-color: #f5f5f5; color: #008000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">try</span></font><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img id="Codehighlighter1_222_254_Open_Image" onclick="this.style.display='none'; Codehighlighter1_222_254_Open_Text.style.display='none'; Codehighlighter1_222_254_Closed_Image.style.display='inline'; Codehighlighter1_222_254_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_222_254_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_222_254_Closed_Text.style.display='none'; Codehighlighter1_222_254_Open_Image.style.display='inline'; Codehighlighter1_222_254_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_222_254_Closed_Text"><font size="2"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></font></span><span id="Codehighlighter1_222_254_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><font size="2">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fso.CopyFile(file,&nbsp;des);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></span></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span style="background-color: #f5f5f5; color: #0000ff"><font size="2">catch</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">(ex)<br />
<img id="Codehighlighter1_270_274_Open_Image" onclick="this.style.display='none'; Codehighlighter1_270_274_Open_Text.style.display='none'; Codehighlighter1_270_274_Closed_Image.style.display='inline'; Codehighlighter1_270_274_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_270_274_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_270_274_Closed_Text.style.display='none'; Codehighlighter1_270_274_Open_Image.style.display='inline'; Codehighlighter1_270_274_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_270_274_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></span></font><span id="Codehighlighter1_270_274_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><font size="2">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></span></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;fso.GetFolder(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">.\\</span><span style="background-color: #f5f5f5; color: #000000">"</span></font><font size="2"><span style="background-color: #f5f5f5; color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fc&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">new</span></font><font size="2"><span style="background-color: #f5f5f5; color: #000000">&nbsp;Enumerator(f.SubFolders);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">for</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;(&nbsp;;&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">!</span></font><font size="2"><span style="background-color: #f5f5f5; color: #000000">fc.atEnd();&nbsp;fc.moveNext())<br />
<img id="Codehighlighter1_387_486_Open_Image" onclick="this.style.display='none'; Codehighlighter1_387_486_Open_Text.style.display='none'; Codehighlighter1_387_486_Closed_Image.style.display='inline'; Codehighlighter1_387_486_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_387_486_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_387_486_Closed_Text.style.display='none'; Codehighlighter1_387_486_Open_Image.style.display='inline'; Codehighlighter1_387_486_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_387_486_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></span></font><span id="Codehighlighter1_387_486_Open_Text"><font size="2"><span style="background-color: #f5f5f5; color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">try</span></font><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img id="Codehighlighter1_399_459_Open_Image" onclick="this.style.display='none'; Codehighlighter1_399_459_Open_Text.style.display='none'; Codehighlighter1_399_459_Closed_Image.style.display='inline'; Codehighlighter1_399_459_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_399_459_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_399_459_Closed_Text.style.display='none'; Codehighlighter1_399_459_Open_Image.style.display='inline'; Codehighlighter1_399_459_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_399_459_Closed_Text"><font size="2"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></font></span><span id="Codehighlighter1_399_459_Open_Text"><font size="2"><span style="background-color: #f5f5f5; color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fso.CopyFile(fc.item().Path&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">+</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">\\</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">+</span></font><span style="background-color: #f5f5f5; color: #000000"><font size="2">&nbsp;file,&nbsp;des);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></span></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span style="background-color: #f5f5f5; color: #0000ff"><font size="2">catch</font></span><font size="2"><span style="background-color: #f5f5f5; color: #000000">(ex)<br />
<img id="Codehighlighter1_477_482_Open_Image" onclick="this.style.display='none'; Codehighlighter1_477_482_Open_Text.style.display='none'; Codehighlighter1_477_482_Closed_Image.style.display='inline'; Codehighlighter1_477_482_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_477_482_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_477_482_Closed_Text.style.display='none'; Codehighlighter1_477_482_Open_Image.style.display='inline'; Codehighlighter1_477_482_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px dotted; border-left: #808080 1px dotted; background-color: #ffffff; display: none; border-top: #808080 1px dotted; border-right: #808080 1px dotted" id="Codehighlighter1_477_482_Closed_Text"><img src="http://www.blogjava.net/images/dot.gif"  alt="" /></span></font><span id="Codehighlighter1_477_482_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><font size="2">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></span></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></span></span><span style="background-color: #f5f5f5; color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</font></span></span><font size="2"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></font><span style="color: #000000"><br />
<font size="2"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></font></span><font size="2"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">job</span><span style="color: #0000ff">&gt;</span></font></div>
<br />
<font size="2">&nbsp;&nbsp;&nbsp; 复制一段《Windows脚本技术》中对WSF文件的定义：<br />
<br />
</font>
<p><font size="2">Windows 脚本文件 (*.wsf) 是含有可扩展标记语言 (XML) 代码的文本文档。它综合了几个可增强脚本灵活性的功能。由于 Windows 脚本文件不是特定于引擎的，因此它们可包含与 Windows 脚本兼容的任何脚本引擎中的脚本。它们充当容器。</font></p>
<p><font size="2">使用 .wsf 文件，可以在创建脚本时使用以下功能：</font></p>
<div class="tablediv">
<table class="dtTABLE" cellspacing="0">
    <tbody>
        <tr valign="top">
            <th width="50%"><font size="2">.wsf 文件支持</font></th>
            <th width="50%"><font size="2">实现</font></th>
        </tr>
        <tr valign="top">
            <td width="50%"><font size="2">Include 语句</font></td>
            <td width="50%"><font size="2">将函数从 VBScript 或 JScript 文件合并到 Windows 脚本宿主项目中。</font></td>
        </tr>
        <tr valign="top">
            <td width="50%"><font size="2">多引擎</font></td>
            <td width="50%"><font size="2">每个文件使用多种脚本语言。</font></td>
        </tr>
        <tr valign="top">
            <td width="50%"><font size="2">类型库</font></td>
            <td width="50%"><font size="2">将常数添加到代码中。</font></td>
        </tr>
        <tr valign="top">
            <td width="50%"><font size="2">工具</font></td>
            <td width="50%"><font size="2">使用任何 XML 编辑器编辑文件。</font></td>
        </tr>
        <tr valign="top">
            <td width="50%"><font size="2">一个文件中的多项作业</font></td>
            <td width="50%"><font size="2">将所有的代码存储在一个位置。</font></td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.blogjava.net/lonleung/aggbug/323012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-06-08 00:25 <a href="http://www.blogjava.net/lonleung/archive/2010/06/08/323012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZT]让 vs2008支持jQuery的智能提示！</title><link>http://www.blogjava.net/lonleung/archive/2010/04/10/317963.html</link><dc:creator>梁良</dc:creator><author>梁良</author><pubDate>Sat, 10 Apr 2010 14:33:00 GMT</pubDate><guid>http://www.blogjava.net/lonleung/archive/2010/04/10/317963.html</guid><wfw:comment>http://www.blogjava.net/lonleung/comments/317963.html</wfw:comment><comments>http://www.blogjava.net/lonleung/archive/2010/04/10/317963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lonleung/comments/commentRss/317963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lonleung/services/trackbacks/317963.html</trackback:ping><description><![CDATA[如何让让VS2008支持jQuery的智能提示功能<br />
<br />
想实现这个效果只需将一个 jQuery.IntelliSense.js 文件COPY到你项目的目录里就可以了，以下是安装步骤：<br />
<br />
1. 将jQuery.IntelliSense.js放到项目目录里<br />
<br />
2.在需要智能提示的页面里加入<br />
<br />
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px" id="bbs.szblogs.com">
<div><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://bbs.szblogs.com<br /><br />--><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">script </span><span style="color: rgb(255,0,0)">language </span><span style="color: rgb(0,0,255)">= "javascript"</span><span style="color: rgb(255,0,0)"> src</span><span style="color: rgb(0,0,255)">="jQuery.IntelliSense.js"</span><span style="color: rgb(0,0,255)">&gt;&lt;/</span><span style="color: rgb(128,0,0)">script</span><span style="color: rgb(0,0,255)">&gt;</span></div>
</div>
<br />
<br />
如果要在JS文件里，就写成<br />
<br />
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px" id="bbs.szblogs.com">
<div><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://bbs.szblogs.com<br /><br />--><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">/ &lt;reference path="jquery.intellisense.js"/&gt; </span></div>
</div>
<br />
<br />
OK，完成啦，然后你就可以尝试一下智能提示的感觉啦，呵呵<br />
<br />
<br />
jQuery.IntelliSense.js可到以下获取<br />
<a href="http://brennan.offwhite.net/blog/2008/02/01/intellisense-for-jquery-in-visual-studio-2008/">http://brennan.offwhite.net/blog/2008/02/01/intellisense-for-jquery-in-visual-studio-2008/</a><br />
<br />
或者直接在本地下载：<br />
<a href="http://files.cnblogs.com/winsonet/jQuery.IntelliSense.rar">http://files.cnblogs.com/winsonet/jQuery.IntelliSense.rar</a>
<img src ="http://www.blogjava.net/lonleung/aggbug/317963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lonleung/" target="_blank">梁良</a> 2010-04-10 22:33 <a href="http://www.blogjava.net/lonleung/archive/2010/04/10/317963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>