<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0">
<channel>
 <title>百草园</title> 
  <link>http://5uu8.com/blog/index.php</link> 
  <description>网上精彩文章的汇集地</description> 
<language>zh-cn</language> 
  <copyright>Powered by Bo-Blog V1.7.0108.2</copyright>
  <image>
 <title>百草园</title> 
 <url>http://5uu8.com/ap/5uu8logo.gif</url>
 <link>http://5uu8.com/blog</link>
 <description>网上精彩文章的汇集地</description>
 </image><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100311_215042</link>
<title>桌面上不可删除的IE图标原理解析</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Thu, 11 Mar 2010 21:50:42 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100311_215042</guid> 
<description>
<![CDATA[ 
	经常遇到的桌面IE图标不能删除，右键也有几个选项，但多是牛头不对马嘴的那种。<br />双击打开，自动跳到某个网址导航的。<br />虽然这种IE图标可以用清理桌面工具清理，但现在好多电脑装的是精简过的版本，找不到清理桌面向导。<br />搞清它的原理，可以手动从注册表里清除。<br /><br />从网上搜过找到一段对应的代码<br /><div class="UBBPanel codePanel"><div class="UBBTitle"> 程序代码</div><div class="UBBContent">Windows Registry Editor Version 5.00<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }]<br /> at =&quot;Internet Explorer&quot;<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\DefaultIcon]<br />@=&quot;C:\\Program Files\\Internet Explorer\\IEXPLORE dot EXE&quot;<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\Shell]<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\Shell\Open]<br /> at =&quot;打开主页(&amp;H)&quot;<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\Shell\Open\Command]<br />@=&quot;C:\\Program Files\\Internet Explorer\\IEXPLORE dot EXE <span style="COLOR: red"><a href="http://www." target="_blank">http://www.</a>****.**</span>&quot;<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\Shell\属性(&amp;R)]<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\Shell\属性(&amp;R)\Command]<br /> at =&quot;Rundll32 dot exe Shell32.dll,Control_RunDLL Inetcpl.cpl&quot;<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ 12346578-0102-0304-0506-9876543210AB }\ShellFolder]<br />&quot;Attributes&quot;=dword:00000000<br /><br />;下面是另一个键值,其中的GUID要与上面的相同<br /><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{ 12346578-0102-0304-0506-9876543210AB }]<br /> at =&quot;Internet Explorer&quot;</div></div><br />这样导入就能生成一个桌面上的IE快捷方式，与系统的大同小异。打开指向的是红色部分的地址。<br /><br /><br />搞懂这原理，就可以反向操作来删除那种不可清除的恶意IE桌面快捷方式了。<br /><strong>打开注册表，F3搜索，输入“Internet Explorer”，勾上“全字匹配”，开始搜索后注意看搜索到的位置“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\”下面，找到的依次点开“\Shell\Open\Command”，如果右边的后面有一个网址类似“C:\Program Files\Internet Explorer\IEXPLORE dot EXE <a href="http://www." target="_blank">http://www.</a>****.**”这样的，那把这个位置处的GUID整项删除即可。</strong> <br /><br />
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100311_215042 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_172844</link>
<title>清理无用的CSS比较有用的几个工具</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Wed, 17 Feb 2010 17:28:44 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_172844</guid> 
<description>
<![CDATA[ 
	<p><font color="#dc6900">【简 介】<br /></font>在我们写样式的时候，页面的CSS在经历几个版本的修改之后，可能有些样式已经用不到了，或许将某些样式更名了而原来的忘了删除，总之页面中可能存在着一些无用的样式。这些无用的浪费了一些服务器空间和带宽消耗，也会增大我们的维护成本。那么有没有一些办法来清理那些无用的样式呢？今天就让我们来了解一下几个比较有用的工具。</p><p>在我们写样式的时候，页面的CSS在经历几个版本的修改之后，可能有些样式已经用不到了，或许将某些样式更名了而原来的忘了删除，总之页面中可能存在着一些无用的样式。这些无用的浪费了一些<a class="article" href="http://product.enet.com.cn/price/plist70.shtml" target="_blank">服务器</a>空间和带宽消耗，也会增大我们的维护成本。那么有没有一些办法来清理那些无用的样式呢？今天就让我们来了解一下几个比较有用的工具。</p><p><strong>Dust-Me selectors</strong></p><p>Dust-Me是一个很有用也很好用的Firefox插件，它可以分析到你的页面中调用的所有CSS文件并分析那些在页面中没有被用到。</p><p>支持本地和远程样式文件，包括使用link标签、&lt; ?xml-stylesheet?&gt;处理指令、 at import语句等方式引入的样式文件；(但是不支持页面中的style块和内联样式)<br />支持IE条件注释中引入的样式文件；<br />可以检查一个页面，也可以检查整个网站；<br />支持CSS1选择器、大部分CSS2和CSS3选择器；<br />理解通用的CSS hack，比如 “* html #fuck-ie”将会被认为是”html #fuck-ie”；<br />支持Firefox 3 dot 5和Firefox 3.0，事实上得益于FF 3.5的js引擎的改进，FF 3.5中的性能比FF 3.0要高50%。</p><p>安装：<a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/5392/addon-5392-latest.xpi"><font color="#7b3e00">点击这里</font></a>。了解更多请访问<a href="http://www.sitepoint.com/dustmeselectors/" target="_blank"><font color="#7b3e00"> Dust-Me selector官方页面</font></a>。</p><p><strong>Page Speed</strong></p><p>Page Speed是Google提供的一个前端性能分析工具，有些类似于YSlow，但是提供了一些比较个性且很有用的工具，比如Remove unused CSS.</p><p>Page Speed和YSlow一样依赖Firebug，<a href="http://code.google.com/speed/page-speed/" target="_blank"><font color="#7b3e00">了解详情和安装请访问这里</font></a>。<br /><strong><br />CSS Redundancy Checker</strong></p><p>CSS Redundancy Checker 是一个免费的在线应用，可以检查所有的使用某个CSS文件的页面中无用的样式。可以同时检查某一个样式在多个页面中的使用情况。该工具的不足是虽然一次能检查多个HTML页面，但每次只能检查一个CSS文件，而且还要手动输入</p><p><a href="http://services.immike.net/css-checker/" target="_blank">http://services.immike.net/css-checker/</a></p><p><strong>IntelliJ IDEA</strong></p><p>IntelliJ IDEA 这是一个颇强大的IDE，类似于DreamWeaver，不过在国内用的不多。该<a class="article" href="http://www.enet.com.cn/esoftware" target="_blank">软件</a>包括一个即时代码分析工具(On-the-fly Code Analysis)，可以分析CSS文件中未用到的class和id。</p><p><strong>Expression Web</strong></p><p>Expression Web作为<a class="article" href="http://www.enet.com.cn/ezone/2291/index.shtml" target="_blank">微软</a>的新一代网站开发工具，还是有很多人使用的，其CSS Report功能可以检查未用到需要被清除的CSS（我的确没有使用EW开发过网站，希望使用该软件的童鞋可以帮忙确认一下这一点）</p>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_172844 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_171926</link>
<title>CSS网页布局DIV水平居中的各种方法</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Wed, 17 Feb 2010 17:19:26 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_171926</guid> 
<description>
<![CDATA[ 
	<p><font color="#dc6900">【简 介】<br /></font>在Web标准中的页面布局是使用Div配合CSS来实现的。这其中最常用到的就是使整个页面水平居中的效果，这是在页面布局中基本，也是最应该首先掌握的知识。不过，还是经常会有人问到这个问题，在这里我简单总结一下使用Div和CSS实现页面水平居中的方法：</p><p>　　在Web标准中的页面布局是使用Div配合CSS来实现的。这其中最常用到的就是使整个页面水平居中的效果，这是在页面布局中基本，也是最应该首先掌握的知识。不过，还是经常会有人问到这个问题，在这里我简单总结一下使用Div和CSS实现页面水平居中的方法： <br /><br />　　<b>一、margin:auto 0 与 text-aligh:center</b> <br /><br />　　在现代浏览器（如Internet Explorer 7、Firefox、Opera等）现代浏览器实现水平居中的方法很简单，只要设定到左右两侧的空白为自动即可。意即： <br /><br />#wrap {  margin:0 auto; } <br /><br />　　上面这段代码的意思是说使wrap这个div到左右两侧的距离自动设置，上下为0（可以为任意）。请在现代浏览器（如Internet Explorer 7、Firefox、Opera等）中运行现在的代码： <br /><br />＜!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;＞" target="_blank">http://www.w3.org/TR/xhtm......1-transitional.dtd&amp;quot;＞</a> <br />＜html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml&quot;＞" target="_blank">http://www.w3.org/1999/xhtml&quot;＞</a> <br />＜head＞ <br />＜title＞ new document ＜/title＞ <br />＜meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /＞ <br />＜style type=&quot;text/css&quot;＞ <br />div#wrap {  <br />width:760px; <br />margin:0 auto; <br />border:1px solid #333; <br />background-color:#ccc; <br /> } <br />＜/style＞ <br />＜/head＞ <br />＜body＞ <br />＜div id=&quot;wrap&quot;＞ <br /><br />　　在Firefox等现代浏览器设定页面元素的水平居中，只要指定margin:0 auto;即可 <br /><br />＜pre＞ <br />div#wrap {  <br />width:760px; <br />margin:0 auto; /*这里的0可以任意值*/ <br />border:1px solid #ccc; <br />background-color:#999; <br /> } <br />＜/pre＞ <br />＜/div＞ <br />＜/body＞ <br />＜/html＞ <br /><br />　　上面的效果很好。但是这在Internet Explorer 6及改正的版本中是不起作用的，不过幸好它有自己的解决办法。在Internet Explorer中text-align属性是可继承的，即在父元素中设置后在子元素中就默认具有了该属性。因此我们可以在body标签中设置text-align属性值为center，这样页面内所有的元素都会自动居中，同时我们还要加一个hook把页面中的文字变成我们习惯的阅读方式——居左对齐。因此我们要如此来写代码： <br /><br />body { text-align:center; } <br />#wrap { text-align:left; } <br /><br />　　这样在Internet Explorer中我们就轻松实现了Div的居中对齐。因此要在所有的浏览器中显示居中的效果，我们就可以这样写我们的代码： <br /><br />body {  text-align:center;  } <br />#wrap {  text-align:left; <br />margin:0 auto; <br /> } <br />＜!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;＞" target="_blank">http://www.w3.org/TR/xhtm......1-transitional.dtd&amp;quot;＞</a> <br />＜html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml&quot;＞" target="_blank">http://www.w3.org/1999/xhtml&quot;＞</a> <br />＜head＞ <br />＜title＞ CSS+Div实现水平居中对齐的页面布局 ＜/title＞ <br />＜meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /＞ <br />＜style type=&quot;text/css&quot;＞ <br />body {  text-align:center;  } <br />div#wrap {  <br />text-align:left; <br />width:760px; <br />margin:0 auto; <br />border:1px solid #333; <br />background-color:#ccc; <br /> } <br />＜/style＞ <br />＜/head＞ <br />＜body＞ <br />＜div id=&quot;wrap&quot;＞ <br /><br />　　在Firefox等现代浏览器设定页面元素的水平居中，只要指定margin:0 auto;即可 <br /><br />＜pre＞ <br />div#wrap {  <br />width:760px; <br />margin:0 auto; /*这里的0可以任意值*/ <br />border:1px solid #ccc; <br />background-color:#999; <br /> } <br /><br />　　在Internet Explorer 6 及以下的版本中我们还要做以下的设置： <br /><br />body {  text-align:center;  } <br />div#wrap {  <br />text-align:left; <br /> } <br />＜/pre＞ <br />＜/div＞ <br />＜/body＞ <br />＜/html＞ <br /><br />　　不过这里有一个前提，就是设置居中的元素要有固定的宽度，比如这里我们设定了为760像素。 <br /><br />　　<b>二、相对定位与负的边距</b> <br /><br />　　对于wrap进行相对定位，然后使用负的边距抵消偏移量。这种方法比较简单还很容易实现： <br /><br />#wrap {  <br />position:relative; <br />width:760px; <br />left:50%; <br />margin-left:-380px <br /> } <br /><br />　　这段代码的意思是，设置wrap的定位是相对于其父元素body标签的，然后将其左边框移动到页面的正中间（也就是left:50%含意）；最后我们再从中间位置向左偏移回一半的距离来，这样就实现了水平居中了。 <br /><br />＜!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;＞" target="_blank">http://www.w3.org/TR/xhtm......1-transitional.dtd&amp;quot;＞</a> <br />＜html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml&quot;＞" target="_blank">http://www.w3.org/1999/xhtml&quot;＞</a> <br />＜head＞ <br />＜title＞ CSS+Div实现水平居中对齐的页面布局 ＜/title＞ <br />＜meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /＞ <br />＜style type=&quot;text/css&quot;＞ <br />div#wrap {  <br />position:relative; <br />width:760px; <br />left:50%; <br />margin-left:-380px; <br />border:1px solid #333; <br />background-color:#ccc; <br /> } <br />＜/style＞ <br />＜/head＞ <br /><br />＜body＞ <br />＜div id=&quot;wrap&quot;＞ <br /><br />　　在所有浏览器中都有效的方法： <br /><br />＜pre＞ <br />div#wrap {  <br />position:relative; <br />width:760px; <br />left:50%; <br />margin-left:-380px; <br />border:1px solid #333; <br />background-color:#ccc; <br /> } <br />＜/pre＞ <br />＜/div＞ <br />＜/body＞ <br />＜/html＞ <br /><br />　　同样，在设定水平居中前你需要设定一个固定的宽度。 <br /><br />　　P.S.究竟选择哪个方法？ <br /><br />　　上面两个方法究竟选择哪种方法好呢？在第一种方法中貌似使用了Hack技术，其实并没有，它是中规中矩的Web标准写法，完全符合规范，因此，两个种方法中完全可以随便的选取其中的任一种进行使用，他们不存在CSS hack的问题。 <br /><br />　　<b>三、其它的居中方式</b> <br /><br />　　上面所说的都是设定了具体宽度的情况下水平居中的实现。有时候我们想做一个弹性布局，或者当一个元素处于一个容器中时我们只想让它居中并不想设定一个具体的宽度。其实这并不是真正的居中布局，就像对一个100%长度的元素来说，你说它是居中对齐还是居左对齐呢？所以所有不高宽度的居中都不是真正的居中。这样的设计我们是使用的像元素的padding来设置的，实际中我们是改变了父元素的容器大小： <br /><br />如我们希望wrap元素长度随窗口而改变，同时又维持居中，我们就可以这样写： <br /><br />body {  <br />padding:10px 150px; <br /> } <br /><br />　　这里，我们只需要保持父元素左右两侧的填充是相等的就可以了。 <br /><br />＜!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;＞" target="_blank">http://www.w3.org/TR/xhtm......1-transitional.dtd&amp;quot;＞</a> <br />＜html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml&quot;＞" target="_blank">http://www.w3.org/1999/xhtml&quot;＞</a> <br />＜head＞ <br />＜title＞ 随浏览器窗口大小而改变的具有弹性的居中布局 ＜/title＞ <br />＜meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /＞ <br />＜style type=&quot;text/css&quot;＞ <br />body {  <br />padding:10px 150px; <br /> } <br />div#wrap {  <br />border:1px solid #333; <br />background-color:#ccc; <br /> } <br />＜/style＞ <br />＜/head＞ <br />＜body＞ <br />＜div id=&quot;wrap&quot;＞ <br /><br />　　一种随浏览器窗口大小而改变的具有弹性的居中布局： <br /><br />＜pre＞ <br />body {  <br />padding:10px 150px; <br /> } <br /><br />　　这里，我们只需要保持父元素左右两侧的填充是相等的就可以了。 <br /><br />＜/pre＞ <br />＜/div＞ <br />＜/body＞ <br />＜/html＞ <br /><br />　　当然这只是“貌似居中”，不过却常常很有用处。 <br /></p>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100217_171926 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100204_171417</link>
<title>将2000下的数据源(ODBC)下的系统DSN导出并导入到另外一台机子上</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Thu, 04 Feb 2010 17:14:17 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100204_171417</guid> 
<description>
<![CDATA[ 
	按以下的注册表路径导出注册表   <br />  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI,到另外一台电脑执行该导出文件
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100204_171417 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100131_171449</link>
<title>删除无法删除目录或文件夹</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Sun, 31 Jan 2010 17:14:49 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100131_171449</guid> 
<description>
<![CDATA[ 
	<span class="Apple-style-span" style="font-family: Simsun; font-size: 14px; color: rgb(51, 51, 51); line-height: 25px; ">   我在命令行提示符界面中删除一个目录的时候，系统提示无法读取，使用rd＼＼．＼命令删除也不行，请问这是什么原因？ <br />   <br />    因为该目录包含非法的字符，导致Windows不能正确识别。解决方法是：打开命令行提示符界面，切换到不能被删除目录的上一层目录，然后输入dir／x命令，强行使用MS-DOS的8.3格式显示目录结构，最后使用rd+8-3格式的目录名删除该目录即可。</span><br/><br/>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100131_171449 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100130_213114</link>
<title>proftpd 1.3.2 解决客户端乱码问题</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Sat, 30 Jan 2010 21:31:14 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100130_213114</guid> 
<description>
<![CDATA[ 
	<p>centos5.4 编译安装proftpd1.3.2，locale为utf-8。在windows里上传的中文名文件在linux中看正常，但是在windows中看是乱码，google了一下，在proftpd.conf中加入了一行：</p><p>UseEncoding UTF-8 GBK</p><p>但是启动的时候出现错误，不认UseEncoding 选项，于是重新编译：</p><p>./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/local/mysql/include/mysql --with-libraries=/usr/local/mysql/lib/mysql --enable-ctrls --enable-nls --enable-shadow --enable-dso --enable-autoshadow --enable-auth-pam<br />make<br />make install</p><p>完成后重启proftpd，问题解决</p>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20100130_213114 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090917_004817</link>
<title>解决Firefox3,IE7,IE8上传图片预览</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Thu, 17 Sep 2009 00:48:17 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090917_004817</guid> 
<description>
<![CDATA[ 
	<div class="blog_content">网上找了不少资料发现以下两个原因导致Firefox3,<span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>,IE8上传图片预览变得复杂 <br />1，基于安全性Firefox3,<span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>,IE8已无法直接通过 input[file] 的 value 属性获得本地文件完整路径 <br />2，<span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>,IE8用js将本地图片地址赋给img.src时无效 <br /><br />参考网上的一些朋友提供的解决办法整理出一份不算完美但凑合能用的代码 <br /><br />还没找到chrome,opera,safari浏览器上的办法，如果有朋友知道办法，请告诉以下，谢谢了 <br /><br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Html代码 <a title="复制代码" onclick="function onclick()<br/>{ <br/>dp.sh.Toolbar.CopyToClipboard(this);return false;<br/> }" href="http://bobit.javaeye.com/blog/431014#"></a></div></div><ol class="dp-xml"><li><span><span>  </span></span></li><li><span>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;" target="_blank">http://www.w3.org/TR/xhtm......tml1-transitional.dtd&amp;quot;</a></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">html</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">xmlns</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;<a href="http://www.w3.org/1999/xhtml&quot;" target="_blank">http://www.w3.org/1999/xhtml&quot;</a></font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">meta</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">http-equiv</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;Content-Type&quot;</font></span><span> </span><span class="attribute"><font color="#ff0000">content</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;text/html; charset=utf-8&quot;</font></span><span> </span><span class="tag"><strong><font color="#006699">/&gt;</font></strong></span><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span></font></strong><span>Firefox3,IE6,<span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>,IE8上传图片预览</span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">style</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;text/css&quot;</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span>#preview_wrapper{    </span></li><li><span>    display:inline-block;   </span></li><li><span>    width:300px;   </span></li><li><span>    height:300px;   </span></li><li><span>    background-color:#CCC;   </span></li><li><span> }   </span></li><li><span>#preview_fake{  /* 该对象用户在IE下显示预览图片 */   </span></li><li><span>    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(</span><span class="attribute"><font color="#ff0000">sizingMethod</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">scale</font></span><span>);   </span></span /></li><li><span> }   </span></li><li><span>#preview_size_fake{  /* 该对象只用来在IE下获得图片的原始尺寸，无其它用途 */   </span></li><li><span>    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(</span><span class="attribute"><font color="#ff0000">sizingMethod</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">image</font></span><span>);     </span></span /></li><li><span>    visibility:hidden;   </span></li><li><span> }   </span></li><li><span>#preview{  /* 该对象用户在FF下显示预览图片 */   </span></li><li><span>    width:300px;   </span></li><li><span>    height:300px;   </span></li><li><span> }   </span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">style</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>  </span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">script</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;text/javascript&quot;</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span>function onUploadImgChange(sender){    </span></li><li><span>    if( !sender.value.match( /.jpg&amp;line;.gif&amp;line;.png&amp;line;.bmp/i ) ){    </span></li><li><span>        alert('图片格式无效！');   </span></li><li><span>        return false;   </span></li><li><span>     }   </span></li><li><span>       </span></li><li><span>    var </span><span class="attribute"><font color="#ff0000">objPreview</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">document</font></span><span>.getElementById( 'preview' );   </span></span /></li><li><span>    var </span><span class="attribute"><font color="#ff0000">objPreviewFake</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">document</font></span><span>.getElementById( 'preview_fake' );   </span></span /></li><li><span>    var </span><span class="attribute"><font color="#ff0000">objPreviewSizeFake</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">document</font></span><span>.getElementById( 'preview_size_fake' );   </span></span /></li><li><span>       </span></li><li><span>    if( sender.files &amp;&amp;  sender.files[0] ){    </span></li><li><span>        </span><span class="attribute"><font color="#ff0000">objPreview.style.display</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'block'</font></span><span>;   </span></span /></li><li><span>        </span><span class="attribute"><font color="#ff0000">objPreview.style.width</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'auto'</font></span><span>;   </span></span /></li><li><span>        </span><span class="attribute"><font color="#ff0000">objPreview.style.height</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'auto'</font></span><span>;   </span></span /></li><li><span>           </span></li><li><span>        // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   </span></li><li><span>        </span><span class="attribute"><font color="#ff0000">objPreview.src</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">sender</font></span><span>.files[0].getAsDataURL();       </span></span /></li><li><span>     }else if( objPreviewFake.filters ){     </span></li><li><span>        // <span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果   </span></li><li><span>        //（相同环境有时能显示，有时不显示），因此只能用滤镜来解决   </span></li><li><span>           </span></li><li><span>        // <span class="hilite1"><font style="BACKGROUND-COLOR: #ffff00">IE7</font></span>, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   </span></li><li><span>        sender.select();   </span></li><li><span>        var </span><span class="attribute"><font color="#ff0000">imgSrc</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">document</font></span><span>.selection.createRange().text;   </span></span /></li><li><span>           </span></li><li><span>        objPreviewFake.filters.item(   </span></li><li><span>            'DXImageTransform.Microsoft.AlphaImageLoader')</span><span class="attribute"><font color="#ff0000">.src</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">imgSrc</font></span><span>;   </span></span /></li><li><span>        objPreviewSizeFake.filters.item(   </span></li><li><span>            'DXImageTransform.Microsoft.AlphaImageLoader')</span><span class="attribute"><font color="#ff0000">.src</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">imgSrc</font></span><span>;   </span></span /></li><li><span>           </span></li><li><span>        autoSizePreview( objPreviewFake,    </span></li><li><span>            objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );   </span></li><li><span>        </span><span class="attribute"><font color="#ff0000">objPreview.style.display</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'none'</font></span><span>;   </span></span /></li><li><span>     }   </span></li><li><span> }   </span></li><li><span>  </span></li><li><span>function onPreviewLoad(sender){    </span></li><li><span>    autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );   </span></li><li><span> }   </span></li><li><span>  </span></li><li><span>function autoSizePreview( objPre, originalWidth, originalHeight ){    </span></li><li><span>    var </span><span class="attribute"><font color="#ff0000">zoomParam</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">clacImgZoomParam</font></span><span>( 300, 300, originalWidth, originalHeight );   </span></span /></li><li><span>    </span><span class="attribute"><font color="#ff0000">objPre.style.width</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">zoomParam</font></span><span>.width + 'px';   </span></span /></li><li><span>    </span><span class="attribute"><font color="#ff0000">objPre.style.height</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">zoomParam</font></span><span>.height + 'px';   </span></span /></li><li><span>    </span><span class="attribute"><font color="#ff0000">objPre.style.marginTop</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">zoomParam</font></span><span>.top + 'px';   </span></span /></li><li><span>    </span><span class="attribute"><font color="#ff0000">objPre.style.marginLeft</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">zoomParam</font></span><span>.left + 'px';   </span></span /></li><li><span> }   </span></li><li><span>  </span></li><li><span>function clacImgZoomParam( maxWidth, maxHeight, width, height ){    </span></li><li><span>    var </span><span class="attribute"><font color="#ff0000">param</font></span><span> = {  width:width, height:height, top:0, left:0  };   </span></span /></li><li><span>       </span></li><li><span>    if( width</span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>maxWidth &amp;line;&amp;line; height</span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>maxHeight ){    </span></span /></li><li><span>        </span><span class="attribute"><font color="#ff0000">rateWidth</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">width</font></span><span> / maxWidth;   </span></span /></li><li><span>        </span><span class="attribute"><font color="#ff0000">rateHeight</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">height</font></span><span> / maxHeight;   </span></span /></li><li><span>           </span></li><li><span>        if( rateWidth </span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span> rateHeight ){    </span></span /></li><li><span>            </span><span class="attribute"><font color="#ff0000">param.width</font></span><span> =  </span><span class="attribute-value"><font color="#0000ff">maxWidth</font></span><span>;   </span></span /></li><li><span>            </span><span class="attribute"><font color="#ff0000">param.height</font></span><span> = height / rateWidth;   </span></span /></li><li><span>         }else{    </span></li><li><span>            </span><span class="attribute"><font color="#ff0000">param.width</font></span><span> = width / rateHeight;   </span></span /></li><li><span>            </span><span class="attribute"><font color="#ff0000">param.height</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">maxHeight</font></span><span>;   </span></span /></li><li><span>         }   </span></li><li><span>     }   </span></li><li><span>       </span></li><li><span>    </span><span class="attribute"><font color="#ff0000">param.left</font></span><span> = (maxWidth - param.width) / 2;   </span></span /></li><li><span>    </span><span class="attribute"><font color="#ff0000">param.top</font></span><span> = (maxHeight - param.height) / 2;   </span></span /></li><li><span>       </span></li><li><span>    return param;   </span></li><li><span> }   </span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>  </span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>  </span></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">div</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;preview_wrapper&quot;</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span>        </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">div</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;preview_fake&quot;</font></span><span class="tag"><strong><font color="#006699">&gt;</font></strong></span><span>  </span></span /></li><li><span>            </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">img</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;preview&quot;</font></span><span> </span><span class="attribute"><font color="#ff0000">onload</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;onPreviewLoad(this)&quot;</font></span><span class="tag"><strong><font color="#006699">/&gt;</font></strong></span><span>  </span></span /></li><li><span>        </span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">/&gt;</span></font></strong><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">input</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;upload_img&quot;</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;file&quot;</font></span><span> </span><span class="attribute"><font color="#ff0000">onchange</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;onUploadImgChange(this)&quot;</font></span><span class="tag"><strong><font color="#006699">/&gt;</font></strong></span><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">/&gt;</span></font></strong><span>  </span></span /></li><li><span>    </span><strong><font color="#006699"><span class="tag">&lt;</span><span class="tag-name">img</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">&quot;preview_size_fake&quot;</font></span><span class="tag"><strong><font color="#006699">/&gt;</font></strong></span><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li><li><span></span><strong><font color="#006699"><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span></font></strong><span>  </span></span /></li></ol></div></div>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090917_004817 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_133116</link>
<title>JSON 入门指南</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Tue, 15 Sep 2009 13:31:16 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_133116</guid> 
<description>
<![CDATA[ 
	<blockquote>JSON 即 JavaScript Object Natation，它是一种轻量级的数据交换格式，非常适合于服务器与<br />JavaScript 的交互。本文将快速讲解 JSON 格式，并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。 </blockquote><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--><br /><p>尽管有许多宣传关于 XML<br />如何拥有跨平台，跨语言的优势，然而，除非应用于 Web Services，否则，在普通的 Web 应用中，开发者经常为 XML<br />的解析伤透了脑筋，无论是服务器端生成或处理 XML，还是客户端用 JavaScript 解析<br />XML，都常常导致复杂的代码，极低的开发效率。实际上，对于大多数 Web 应用来说，他们根本不需要复杂的 XML 来传输数据，XML<br />的扩展性很少具有优势，许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比，返回 HTML<br />片段大大降低了系统的复杂性，但同时缺少了一定的灵活性。 </p><br /><p>现在， JSON 为 Web 应用开发者提供了另一种数据交换格式。让我们来看看 JSON 到底是什么，同 XML 或 HTML 片段相比，JSON 提供了更好的简单性和灵活性。 </p><br /><br /><table border="0" cellspacing="0" cellpadding="0" width="40%" align="right"><tbody><tr><td width="10"><img alt="" src="http://www.ibm.com/i/c.gif" width="10" height="1" /></td><td><br /></td></tr></tbody></table><br /><br /><p><a name="N10072"><span class="atitle">JSON 数据格式解析 </span></a></p><br /><p><br />和 XML 一样，JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的，因此，JSON<br />的数据格式非常简单，您可以用 JSON 传输一个简单的 String，Number，Boolean，也可以传输一个数组，或者一个复杂的<br />Object 对象。 </p><br /><p>String，Number 和 Boolean 用 JSON 表示非常简单。例如，用 JSON 表示一个简单的 String “ abc ”，其格式为：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">&quot;abc&quot;</pre></td></tr></tbody></table><br /><br /><p>除了字符 <code>&quot;</code>，<code>\</code>，<code>/</code> 和一些控制符（<code>\b</code>，<code>\f</code>，<code>\n</code>，<code>\r</code>，<code>\t</code>）需要编码外，其他 Unicode 字符可以直接输出。下图是一个 String 的完整表示结构：</p><br /><br /><br /><a name="N100A7"><b>图 1. String 的完整表示结构 </b></a><br /><br /><img alt=" 图 1. String 的完整表示结构 " src="http://www.ibm.com/developerworks/cn/web/wa-lo-json/fig001.jpg" /><br /><br /><br /><p>一个 Number 可以根据整型或浮点数表示如下：</p><br /><br /><br /><a name="N100B6"><b>图 2. Number 的表示结构 </b></a><br /><br /><img alt=" 图 2. Number 的表示结构 " src="http://www.ibm.com/developerworks/cn/web/wa-lo-json/fig002.jpg" /><br /><br /><br /><p>这与绝大多数编程语言的表示方法一致，例如：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">12345（整数）<br /> -3.9e10（浮点数）</pre></td></tr></tbody></table><br /><br /><p>Boolean 类型表示为 <code>true</code> 或 <code>false</code> 。此外，JavaScript 中的 null 被表示为 <code>null</code>，注意，<code>true</code>、<code>false</code> 和 <code>null</code> 都没有双引号，否则将被视为一个 String 。 </p><br /><p>JSON 还可以表示一个数组对象，使用 <code>[]</code> 包含所有元素，每个元素用逗号分隔，元素可以是任意的 Value，例如，以下数组包含了一个 String，Number，Boolean 和一个 null：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">[&quot;abc&quot;,12345,false,null]</pre></td></tr></tbody></table><br /><br /><p>Object 对象在 JSON 中是用 <code>{  }</code> 包含一系列无序的 Key-Value 键值对表示的，实际上此处的 Object 相当于 Java 中的 <code>Map&lt;String, Object&gt;</code>，而不是 Java 的 Class 。注意 Key 只能用 String 表示。 </p><br /><p>例如，一个 Address 对象包含如下 Key-Value：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">city:Beijing <br /> street:Chaoyang Road <br /> postcode:100025（整数）</pre></td></tr></tbody></table><br /><br /><p>用 JSON 表示如下：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">{ &quot;city&quot;:&quot;Beijing&quot;,&quot;street&quot;:&quot; Chaoyang Road &quot;,&quot;postcode&quot;:100025 }</pre></td></tr></tbody></table><br /><br /><p>其中 Value 也可以是另一个 Object 或者数组，因此，复杂的 Object 可以嵌套表示，例如，一个 Person 对象包含 name 和 address 对象，可以表示如下：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">{ &quot;name&quot;:&quot;Michael&quot;,&quot;address&quot;:<br />    { &quot;city&quot;:&quot;Beijing&quot;,&quot;street&quot;:&quot; Chaoyang Road &quot;,&quot;postcode&quot;:100025 }<br /> }</pre></td></tr></tbody></table><br /><br /><p><a name="N1010D"><span class="atitle">JavaScript 处理 JSON 数据 </span></a></p><br /><p>上面介绍了如何用 JSON 表示数据，接下来，我们还要解决如何在服务器端生成 JSON 格式的数据以便发送到客户端，以及客户端如何使用 JavaScript 处理 JSON 格式的数据。 </p><br /><p>我们先讨论如何在 Web 页面中用 JavaScript 处理 JSON 数据。我们通过一个简单的 JavaScript 方法就能看到客户端如何将 JSON 数据表示给用户：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">function handleJson() {  <br />  var j={ &quot;name&quot;:&quot;Michael&quot;,&quot;address&quot;:<br />      { &quot;city&quot;:&quot;Beijing&quot;,&quot;street&quot;:&quot; Chaoyang Road &quot;,&quot;postcode&quot;:100025 }<br />   }; <br />  document.write(j.name); <br />  document.write(j.address.city); <br />  }</pre></td></tr></tbody></table><br /><br /><p>假定服务器返回的 JSON 数据是上文的：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">{ &quot;name&quot;:&quot;Michael&quot;,&quot;address&quot;:<br />    { &quot;city&quot;:&quot;Beijing&quot;,&quot;street&quot;:&quot; Chaoyang Road &quot;,&quot;postcode&quot;:100025 }<br /> }</pre></td></tr></tbody></table><br /><br /><p><br />只需将其赋值给一个 JavaScript 变量，就可以立刻使用该变量并更新页面中的信息了，相比 XML 需要从 DOM<br />中读取各种节点而言，JSON 的使用非常容易。我们需要做的仅仅是发送一个 Ajax 请求，然后将服务器返回的 JSON<br />数据赋值给一个变量即可。有许多 Ajax 框架早已包含了处理 JSON 数据的能力，例如 Prototype（一个流行的 JavaScript<br />库：<a href="http://prototypejs.org）提供了" target="_blank">http://prototypejs.org）提供了</a> <code>evalJSON()</code> 方法，能直接将服务器返回的 JSON 文本变成一个 JavaScript 变量：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">new Ajax.Request(&quot;<a href="http://url&quot;," target="_blank">http://url&quot;,</a> {  <br />  method: &quot;get&quot;, <br />  onSuccess: function(transport) {  <br />    var json = transport.responseText.evalJSON(); <br />    // TODO: document.write(json.xxx); <br />   } <br />  });</pre></td></tr></tbody></table><br /><br /><p><a name="N1012F"><span class="atitle">服务器端输出 JSON 格式数据 </span></a></p><br /><p>下面我们讨论如何在服务器端输出 JSON 格式的数据。以 Java 为例，我们将演示将一个 Java 对象编码为 JSON 格式的文本。 </p><br /><p>将 String 对象编码为 JSON 格式时，只需处理好特殊字符即可。另外，必须用 (<code>&quot;</code>) 而非 (<code>'</code>) 表示字符串：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> static String string2Json(String s) {  <br />    StringBuilder sb = new StringBuilder(s.length()+20); <br />    sb.append('\&quot;'); <br />    for (int i=0; i&lt;s.length(); i++) {  <br />        char c = s.charAt(i); <br />        switch (c) {  <br />        case '\&quot;': <br />            sb.append(&quot;\\\&quot;&quot;); <br />            break; <br />        case '\\': <br />            sb.append(&quot;\\\\&quot;); <br />            break; <br />        case '/': <br />            sb.append(&quot;\\/&quot;); <br />            break; <br />        case '\b': <br />            sb.append(&quot;\\b&quot;); <br />            break; <br />        case '\f': <br />            sb.append(&quot;\\f&quot;); <br />            break; <br />        case '\n': <br />            sb.append(&quot;\\n&quot;); <br />            break; <br />        case '\r': <br />            sb.append(&quot;\\r&quot;); <br />            break; <br />        case '\t': <br />            sb.append(&quot;\\t&quot;); <br />            break; <br />        default: <br />            sb.append(c); <br />         } <br />     } <br />    sb.append('\&quot;'); <br />    return sb.toString(); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>将 Number 表示为 JSON 就容易得多，利用 Java 的多态，我们可以处理 Integer，Long，Float 等多种 Number 格式：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> static String number2Json(Number number) {  <br />    return number.toString(); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>Boolean 类型也可以直接通过 <code>toString()</code> 方法得到 JSON 的表示：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> static String boolean2Json(Boolean bool) {  <br />    return bool.toString(); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>要将数组编码为 JSON 格式，可以通过循环将每一个元素编码出来：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> static String array2Json(Object[] array) {  <br />    if (array.length==0) <br />        return &quot;[]&quot;; <br />    StringBuilder sb = new StringBuilder(array.length &lt;&lt; 4); <br />    sb.append('['); <br />    for (Object o : array) {  <br />        sb.append(toJson(o)); <br />        sb.append(','); <br />     } <br />    // 将最后添加的 ',' 变为 ']': <br />    sb.setCharAt(sb.length()-1, ']'); <br />    return sb.toString(); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>最后，我们需要将 <code>Map&lt;String, Object&gt;</code> 编码为 JSON 格式，因为 JavaScript 的 Object 实际上对应的是 Java 的 <code>Map&lt;String, Object&gt; </code>。该方法如下：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> static String map2Json(Map&lt;String, Object&gt; map) {  <br />    if (map.isEmpty()) <br />        return &quot;{  }&quot;; <br />    StringBuilder sb = new StringBuilder(map.size() &lt;&lt; 4); <br />    sb.append('{ '); <br />    Set&lt;String&gt; keys = map.keySet(); <br />    for (String key : keys) {  <br />        Object value = map.get(key); <br />        sb.append('\&quot;'); <br />        sb.append(key); <br />        sb.append('\&quot;'); <br />        sb.append(':'); <br />        sb.append(toJson(value)); <br />        sb.append(','); <br />     } <br />    // 将最后的 ',' 变为 ' }': <br />    sb.setCharAt(sb.length()-1, ' }'); <br />    return sb.toString(); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>为了统一处理任意的 Java 对象，我们编写一个入口方法 <code>toJson(Object)</code>，能够将任意的 Java 对象编码为 JSON 格式：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> public static String toJson(Object o) {  <br />    if (o==null) <br />        return &quot;null&quot;; <br />    if (o instanceof String) <br />        return string2Json((String)o); <br />    if (o instanceof Boolean) <br />        return boolean2Json((Boolean)o); <br />    if (o instanceof Number) <br />        return number2Json((Number)o); <br />    if (o instanceof Map) <br />        return map2Json((Map&lt;String, Object&gt;)o); <br />    if (o instanceof Object[]) <br />        return array2Json((Object[])o); <br />    throw new RuntimeException(&quot;Unsupported type: &quot; + o.getClass().getName()); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>我们并未对 Java 对象作严格的检查。不被支持的对象（例如 List）将直接抛出 RuntimeException 。此外，为了保证输出的 JSON 是有效的，<code>Map&lt;String, Object&gt;</code> 对象的 Key 也不能包含特殊字符。细心的读者可能还会发现循环引用的对象会引发无限递归，例如，精心构造一个循环引用的 Map，就可以检测到 <code>StackOverflowException</code>：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br />  at Test(expected=StackOverflowError dot class) <br /> public void testRecurrsiveMap2Json() {  <br />    Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;(); <br />    map.put(&quot;key&quot;, map); <br />    JsonUtil.map2Json(map); <br />  } <br /> </pre></td></tr></tbody></table><br /><br /><p>好在服务器处理的 JSON 数据最终都应该转化为简单的 JavaScript 对象，因此，递归引用的可能性很小。 </p><br /><p>最后，通过 Servlet 或 MVC 框架输出 JSON 时，需要设置正确的 MIME 类型（application/json）和字符编码。假定服务器使用 UTF-8 编码，则可以使用以下代码输出编码后的 JSON 文本：</p><br /><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode"> <br /> response.setContentType(&quot;application/json;charset=UTF-8&quot;); <br /> response.setCharacterEncoding(&quot;UTF-8&quot;); <br /> PrintWriter pw = response.getWriter(); <br /> pw.write(JsonUtil.toJson(obj)); <br /> pw.flush(); <br /> </pre></td></tr></tbody></table><br /><br /><p><a name="N10193"><span class="atitle">小结 </span></a></p><br /><p>JSON 已经是 JavaScript 标准的一部分。目前，主流的浏览器对 JSON 支持都非常完善。应用 JSON，我们可以从 XML 的解析中摆脱出来，对那些应用 Ajax 的 Web 2.0 网站来说，JSON 确实是目前最灵活的轻量级方案。 </p><br /><br />
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_133116 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_132839</link>
<title>6条技巧减少你的php代码量</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Tue, 15 Sep 2009 13:28:39 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_132839</guid> 
<description>
<![CDATA[ 
	<p>PHP是一个很好的语言，而且有很多惊喜。而今天我看到了一个有趣的方法，在Arnold Daniels的博客。他谈到PHP中的临时变量。这个秘诀有益于&quot;懒惰&quot;的程序员，使程序员可以不用再去想该去给变量取个什么名字。他们可以使用这样的变量名：${ 0 }。</p><br/><p>我比Arnold Daniels更懒，根本就不想用变量。下面有一些技巧让你的代码更少。</p><br/><p>1. 使用 <code>|| (or)</code> 和 <code>&amp;&amp; (and)</code> 操作代替 <code>if</code>.</p><br/><pre>// 标准写法<br />$status = fwrite($h, 'some text');<br />if (!$status) { <br /> &nbsp; &nbsp;log('Writing failed');<br /> }<br /><br />// 较少的代码<br />${ 0 } = fwrite($h, 'some text');<br />if (!${ 0 }) log('Writing failed');<br /><br />// 更少的代码<br />fwrite($h, 'some text') or log('Writing failed');</pre><br/><p>2. 使用三元运算符.</p><br/><pre>// 标准写法<br />if ($age &lt; 16) { <br /> &nbsp; &nbsp;$message = 'Welcome!';<br /> } else { <br /> &nbsp;$message = 'You are too old!';<br /> }<br /><br />// 较少的代码<br />$message = 'You are too old!';<br />if ($age &lt; 16) { <br /> &nbsp; &nbsp;$message = 'Welcome!';<br /> }<br /><br />// 更少的代码<br />$message = ($age &lt; 16) ? 'Welcome!' : 'You are too old!';</pre><br/><p>3. <code>使用for替换掉while</code>.</p><br/><pre>// 标准写法<br />$i = 0;<br />while ($i &lt; 100) { <br /> &nbsp;$source[] = $target[$i];<br /> &nbsp;$i += 2;<br /> }<br /><br />// 较少的代码<br />for ($i = 0; $i &lt; 100; $source[] = $target[$i+=2]);</pre><br/><p>4. 很多地方是必须写变量。例如： <a href="http://www.alexatnet.com/node/98">PHP fluent API tips</a> 。 例如：一个函数调用得到一个数组，然后直接使用数组元素。</p><br/><p>//下面这个例子会发生错误，因为函数调用，返回的数组没有先赋值给一个变量，而直接使用['extension']。</p><br/><pre>$ext = pathinfo('file.png')['extension'];<br />// result: Parse error: syntax error, unexpected '[' in ... on line ...</pre><br/><p>你可以建立一个函数来解决这个问题，如下：(相当不错的方法，看着有点别扭...)</p><br/><pre>// returns reference to the created object<br />function &amp;r($v) {  return $v;  }<br />// returns array offset<br />function &amp;a(&amp;$a, $i) {  return $a[$i];  }</pre><br/><p>5. 多花时间去研究php自带的函数方法，PHP有很多很有趣的方法能使你的代码更短。</p><br/><p>6. 当写更多的代码可以使程序更清晰的时候，不要懒惰。 多花时间写注释，尽量写易读的代码。这才是真正节约时间的技巧。(多写注释和易读的代码，在以后修改调试的时候会节约时间)</p><br/>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090915_132839 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item><item>
<link>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090806_001737</link>
<title>jsCron: JavaScript的计划任务</title> 
<author>流星 &lt;5uu8@163.com&gt;</author>
<category>百草园</category>
<pubDate>Thu, 06 Aug 2009 00:17:37 +0800</pubDate> 
 <guid>http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090806_001737</guid> 
<description>
<![CDATA[ 
	<div class="syntax_hilite"><font face="Courier New">　　Cron是Linux内置的一个计划任务系统,也就是一个定时执行工具，可以在无需人工干预的情况下运行</font><font face="Courier New">作业。<a href="http://www.anieto2k.com/">Andrés Nieto</a>写的这个<a href="http://www.anieto2k.com/2009/01/05/jscron-portando-cron-a-javascript/">jsCron</a>,则是JavaScript版本的Cron,也就是用JavaScript实现计划任务.</font></div><br/><p> </p><br/><p><img src="http://www.ourjs.cn/uploadfiles/200901/2009011312445836465.jpg" alt="" /></p><br/><p><font face="Courier New">JsCron的使用方法如下:</font></p><br/><div class="syntax_hilite"> </div><br/><div class="syntax_hilite"><span style="font-weight: bold; color: rgb(0, 0, 0);">JAVASCRIPT:</span><br/><div><br/><ol><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div><br/> &nbsp; &nbsp;</li><li style="font-weight: bold; color: rgb(38, 83, 106);"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="color: rgb(0, 153, 0); font-style: italic;">// Function hola();</span></div><br/> &nbsp; &nbsp;</li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);">function</span> hola<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div><br/> &nbsp; &nbsp;</li><li style="font-weight: bold; color: rgb(38, 83, 106);"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">   <span style="color: rgb(0, 0, 102);">alert</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="color: rgb(51, 102, 204);">&quot;Hola&quot;</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div><br/> &nbsp; &nbsp;</li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"> }</span></div><br/> &nbsp; &nbsp;</li><li style="font-weight: bold; color: rgb(38, 83, 106);"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div><br/> &nbsp; &nbsp;</li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="color: rgb(0, 153, 0); font-style: italic;">// Tarea programada</span></div><br/> &nbsp; &nbsp;</li><li style="font-weight: bold; color: rgb(38, 83, 106);"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">jsCron.<span style="color: rgb(0, 102, 0);">set</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="color: rgb(51, 102, 204);">&quot;35 17 * * * hola()&quot;</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div><br/> &nbsp; &nbsp;</li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><br/> &nbsp; &nbsp;<div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div><br/> &nbsp; &nbsp;</li></ol><br/></div><br/><p style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">参数如下：</p><br/><div><br/><pre><code>35 17 * * * hola()</code></pre><br/></div><br/><div><br/><pre>按顺序从左到右分别是：</pre><br/></div><br/><pre><ul><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }">分钟[ 0-59 ]</span></li><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><span style="direction: ltr; text-align: left;" class="google-src-text">小时 [0-23]</span></span></li><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }">日[ 0-31 ]</span></li><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }">月[ 0-12 ]</span></li><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }">星期Ｎ[ 0-7 ]</span></li><li><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }">执行</span>的函数</li></ul></pre><br/><p>一些例子：</p><br/><p><font color="#0000ff"><strong><code>* 16 * * * hola(</code>)</strong></font></p><br/><p><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><span style="direction: ltr; text-align: left;" class="google-src-text"><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><em>每天从16:00到16点59分执行<code>hola()</code></em></span></span></span></p><br/><p><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><span style="direction: ltr; text-align: left;" class="google-src-text"><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><em><code><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><font color="#0000ff"><strong>30 6 1 * * showHola()</strong></font></span></code></em></span></span></span></p><br/><p><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><span style="direction: ltr; text-align: left;" class="google-src-text"><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><em><code><span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><em>每月<span onmouseout="function onmouseout(event) { <br/> &nbsp; &nbsp;_tipoff();<br/> }" onmouseover="function onmouseover(event) { <br/> &nbsp; &nbsp;_tipon(this);<br/> }"><em>第1天</em></span>在6:30上午执行showHola()。</em></span></code></em></span></span></span></p><br/><p> </p><br/><p>JsCron的完整代码如下：</p><br/><div class="syntax_hilite"><span style="font-weight: bold; color: rgb(0, 0, 0);"><br/><pre><code /><div class="syntax_hilite"><span style="font-weight: bold; color: rgb(0, 0, 0);">JAVASCRIPT:</span> <div id="javascript-2"><div class="javascript"><ol><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);">var</span> jsCron = <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　items:<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　interval: <span style="font-weight: bold; color: rgb(0, 51, 102);">null</span>,</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　parse: <span style="font-weight: bold; color: rgb(0, 51, 102);">function</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>strUnix<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　</font>return</span> strUnix.<span style="color: rgb(0, 102, 0);">match</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="color: rgb(0, 102, 255);">/^<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> +<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\w+<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>/</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　</font> }</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　check: <span style="font-weight: bold; color: rgb(0, 51, 102);">function</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);"><font color="#000000">　　　　</font>var</span> hoy = <span style="font-weight: bold; color: rgb(0, 51, 102);">new</span> Date<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);"><font color="#000000">　　　　</font>var</span> test = <span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="font-weight: bold; color: rgb(0, 51, 102);">new</span> Date<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　　　　　hoy.<span style="color: rgb(0, 102, 0);">getMinutes</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　　　　　hoy.<span style="color: rgb(0, 102, 0);">getHours</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　　　　　hoy.<span style="color: rgb(0, 102, 0);">getDate</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　　　　　hoy.<span style="color: rgb(0, 102, 0);">getMonth</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>,</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　　　　　hoy.<span style="color: rgb(0, 102, 0);">getDay</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　</font>for</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 51, 102);">var</span> i <span style="font-weight: bold; color: rgb(0, 0, 102);">in</span> <span style="font-weight: bold; color: rgb(0, 0, 102);">this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);"><font color="#000000">　　　　　　</font>var</span> exec = <span style="color: rgb(128, 0, 0);">0</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);"><font color="#000000">　　　　　　</font>var</span> t = <span style="font-weight: bold; color: rgb(0, 0, 102);">this</span>.<span style="color: rgb(0, 102, 0);">parse</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 0, 102);">this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>i<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">1</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　</font>for</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 51, 102);">var</span> x <span style="font-weight: bold; color: rgb(0, 0, 102);">in</span> t<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　</font>if</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>t<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>x<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> &amp;&amp; <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>t<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>x<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> == test<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>x<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> || t<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>x<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> == <span style="color: rgb(51, 102, 204);">&quot;*&quot;</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>exec++;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　</font>if</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>exec == <span style="color: rgb(128, 0, 0);">5</span> &amp;&amp; <span style="font-weight: bold; color: rgb(0, 0, 102);">this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>i<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">0</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> == <span style="color: rgb(128, 0, 0);">0</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　　　</font>eval</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>t<span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">6</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>.<span style="color: rgb(0, 102, 0);">call</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　　　</font>this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>i<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">0</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> = <span style="color: rgb(128, 0, 0);">1</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　　　　　</font> }</span> <span style="font-weight: bold; color: rgb(0, 0, 102);">else</span> <span style="font-weight: bold; color: rgb(0, 0, 102);">if</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>exec &lt;<span style="color: rgb(128, 0, 0);">5</span> &amp;&amp; <span style="font-weight: bold; color: rgb(0, 0, 102);">this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>i<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">0</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> == <span style="color: rgb(128, 0, 0);">1</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　　　　　</font>this</span>.<span style="color: rgb(0, 102, 0);">items</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span>i<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">0</span><span style="font-weight: bold; color: rgb(0, 102, 0);">]</span> = <span style="color: rgb(128, 0, 0);">0</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　　　　　</font> }</span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　　　</font> }</span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　</font> }</span>,</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　set: <span style="font-weight: bold; color: rgb(0, 51, 102);">function</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>strUnix<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　</font>if</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>!<span style="color: rgb(0, 102, 255);">/^<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d+|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\d|\*<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> +<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>\w+<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>/</span>.<span style="color: rgb(0, 102, 0);">test</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>strUnix<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　　　　　<span style="font-weight: bold; color: rgb(0, 0, 102);">return</span> <span style="font-weight: bold; color: rgb(0, 51, 102);">new</span> Error<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="color: rgb(51, 102, 204);">&quot;Formato invalido&quot;</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　</font>this</span>.<span style="color: rgb(0, 102, 0);">items</span>.<span style="color: rgb(0, 102, 0);">push</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">[</span><span style="color: rgb(128, 0, 0);">0</span>, strUnix<span style="font-weight: bold; color: rgb(0, 102, 0);">]</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　</font> }</span>,</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">　　init: <span style="font-weight: bold; color: rgb(0, 51, 102);">function</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span>seg<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span> <span style="font-weight: bold; color: rgb(0, 102, 0);">{ </span></div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 51, 102);"><font color="#000000">　　　　</font>var</span> seg = seg || <span style="color: rgb(128, 0, 0);">1000</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 0, 102);"><font color="#000000">　　　　</font>this</span>.<span style="color: rgb(0, 102, 0);">interval</span> = setInterval<span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="color: rgb(51, 102, 204);">&quot;jsCron.check()&quot;</span>, seg<span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"><font color="#000000">　　</font> }</span></div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold; color: rgb(0, 102, 0);"> }</span>;</div></li><li style="font-weight: bold; color: rgb(38, 83, 106);"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">jsCron.<span style="color: rgb(0, 102, 0);">init</span><span style="font-weight: bold; color: rgb(0, 102, 0);">(</span><span style="font-weight: bold; color: rgb(0, 102, 0);">)</span>;</div></li><li style="font-weight: normal; color: rgb(58, 106, 139); font-style: normal; font-family: 'Courier New',Courier,monospace;"><div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </div></li></ol></div></div></div></pre><br/><pre> </pre><br/></span><br/><div id="javascript-2"><br/><p style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">jsCron主页: <a href="http://www.anieto2k.com/2009/01/05/jscron-portando-cron-a-javascript/"><a href="http://www.anieto2k.com/2009/01/05/jscron-portando-cron-a-javascript/" target="_blank">http://www.anieto2k.com/2......portando-cron-a-javascript/</a></a></p><br/><p style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;">jsCron下载地址：　<a href="http://www.anieto2k.com/demo/jscron/jscron.js"><a href="http://www.anieto2k.com/demo/jscron/jscron.js" target="_blank">http://www.anieto2k.com/demo/jscron/jscron.js</a></a></p><br/><p style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Courier New',Courier,monospace;"> </p><br/></div><br/></div><br/></div><br/>
	<br>   (<a href=http://5uu8.com/blog/index.php?job=art&amp;articleid=a_20090806_001737 target=_blank> 网页浏览 </a>)
  ]]> 
</description>
</item></channel>
</rss>