<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_山高我为峰</title><subtitle type="text">Ricebug</subtitle><id>http://feed.cnblogs.com/blog/u/18544/rss</id><updated>2012-02-07T08:42:45Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/18544/rss"/><entry><id>http://www.cnblogs.com/Lewis/archive/2012/02/07/2341664.html</id><title type="text">JS innerHTML Double Quotes</title><summary type="text">通过js的innerhtml来获取一个dom节点，内部的html值时，如果属性值没有空格，则ie左右版本下，都会出现标签大些，双引号丢失问题。如果属性值有空格，则标签会变成大写，引号则正常输出.当属性值无空格时： FF3.5.7（gecko/20091221）&amp;lt;div id=&amp;quot;div2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; IE6 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt; IE7 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt; IE8 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt; 有空格时： FF3</summary><published>2012-02-07T08:43:00Z</published><updated>2012-02-07T08:43:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2012/02/07/2341664.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2012/02/07/2341664.html"/><content type="html">&lt;p&gt;通过js的innerhtml来获取一个dom节点，内部的html值时，如果属性值没有空格，则ie左右版本下，都会出现标签大些，双引号丢失问题。如果属性值有空格，则标签会变成大写，引号则正常输出.&lt;/p&gt;&#xD;
&lt;p&gt;当属性值无空格时：&lt;br /&gt; FF3.5.7（gecko/20091221）&amp;lt;div id="div2"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &lt;br /&gt; IE6 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; IE7 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; IE8 弹出:&amp;lt;DIV id=div2&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; &lt;br /&gt; 有空格时：&lt;br /&gt; FF3.5.7（gecko/20091221）&amp;lt;div id="div2 "&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &lt;br /&gt; IE6 弹出:&amp;lt;DIV id="div2 "&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; IE7 弹出:&amp;lt;DIV id="div2 "&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; IE8 弹出:&amp;lt;DIV id="div2 "&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt; &lt;br /&gt; 产生这个BUG的原因是什么呢？&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;When you get the innerHTML of a DOM node in IE, if there are no spaces in an attribute value, IE will remove the quotes around it.IE's innerHTML doesn't remove quotes from non standard attributes.&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;即使是jQuery里面，jquery团队的技术人员也没有解决这个问题.&lt;/p&gt;&#xD;
&lt;p&gt;提供下解决方案：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;function ieInnerHTML(obj) { &#xD;
         var zz = obj.innerHTML, &#xD;
             z =  &#xD;
           zz.match(/&amp;lt;\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'"&amp;gt;\s]+))?)+\s*|\s*)\/?&amp;gt;/g); &#xD;
          if (z){ &#xD;
            for (var i=0;i&amp;lt;z.length;i++){ &#xD;
              var y, zSaved = z[i]; &#xD;
              z[i] = z[i].replace(/(&amp;lt;?\w+)|(&amp;lt;\/?\w+)\s/, &#xD;
                                  function(a){return a.toLowerCase();}); &#xD;
              y = z[i].match(/\=\w+[?\s+|?&amp;gt;]/g); &#xD;
               if (y){ &#xD;
                for (var j=0;j&amp;lt;y.length;j++){ &#xD;
                  z[i] = z[i].replace(y[j],y[j] &#xD;
                             .replace(/\=(\w+)([?\s+|?&amp;gt;])/g,'="$1"$2')); &#xD;
                } &#xD;
               } &#xD;
               zz = zz.replace(zSaved,z[i]); &#xD;
             } &#xD;
           } &#xD;
          return zz; &#xD;
         } &#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;在相应的地方调用函数&lt;strong&gt;ieInnerHTML&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;span &gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span &gt;/*@cc_on!@*/&lt;/span&gt;&lt;span&gt;0){&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　inner_str&amp;nbsp;=&amp;nbsp;ieInnerHTML(obj); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;　　}&lt;span &gt;else&lt;/span&gt;&lt;span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　inner_str&amp;nbsp;=&amp;nbsp;obj.innerHTML; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;　　} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;原理：对IE版本进行对应的JS处理，而且相应的元素标签中不要出现非标准元素&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;参考资料：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1231770/innerhtml-removes-attribute-quotes-in-internet-explorer" target="_blank"&gt;innerHTML removes attribute quotes in Internet Explorer&lt;/a&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;a href="http://bbs.blueidea.com/thread-2167504-1-510.html" target="_blank"&gt;innerHTML中的双引号哪去了？&lt;/a&gt;&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;本文引用：http://liupeng.us/how-to-fix-js-innerhtml-double-quotes/&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/2341664.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2012/02/07/2341664.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/06/20/2085344.html</id><title type="text">正则表达式有无g参数时，test()结果的差异</title><summary type="text">有g参数的正则表达式：var kk=/\w\w/g;var kk=new RegExp(&amp;quot;\\w\\w&amp;quot;,&amp;quot;g&amp;quot;);如果正则表达式有指定g参数全局匹配 ， 则每次test()是依次获得下一个匹配。举例说明var s=&amp;quot;AABBCC&amp;quot;;var kk=/(\w\w)/g;for(i=0;i&amp;lt;8;i++){document.write (&amp;quot;&amp;lt;br&amp;gt;&amp;quot;+kk.test(s));}上面的代码结果是3个true，1个false，再3个true，再1个false。truetruetruefalse┄第1次tes</summary><published>2011-06-20T08:50:00Z</published><updated>2011-06-20T08:50:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/06/20/2085344.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/06/20/2085344.html"/><content type="html">&lt;div  id="sina_keyword_ad_area2"&gt;&#xD;
&lt;p&gt;有g参数的正则表达式：&lt;/p&gt;&#xD;
&lt;p&gt;var kk=/\w\w/g;&lt;/p&gt;&#xD;
&lt;p&gt;var kk=new RegExp("\\w\\w","g");&lt;/p&gt;&#xD;
&lt;p&gt;如果正则表达式有指定g参数全局匹配 ， 则每次test()是依次获得下一个匹配。举例说明&lt;/p&gt;&#xD;
&lt;p&gt;var s="AABBCC";&lt;/p&gt;&#xD;
&lt;p&gt;var kk=/(\w\w)/g;&lt;/p&gt;&#xD;
&lt;p&gt;for(i=0;i&amp;lt;8;i++){&lt;/p&gt;&#xD;
&lt;p&gt;document.write ("&amp;lt;br&amp;gt;"+kk.test(s));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;上面的代码结果是3个true，1个false，再3个true，再1个false。&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;false&lt;/p&gt;&#xD;
&lt;p&gt;┄&lt;/p&gt;&#xD;
&lt;p&gt;第1次test匹配AA，第2次test匹配BB，第3次test匹配CC，第4次test找不到匹配，之后又从头重新开始：&lt;/p&gt;&#xD;
&lt;p&gt;第5次同第1次，第6次同第2次，┄┄。&lt;/p&gt;&#xD;
&lt;p&gt;所以会出现test有时候true，有时候false的情况。这里的正则表达式必须是指定了g参数的。&lt;/p&gt;&#xD;
&lt;p&gt;利用这一特点，可以用while循环遍历所有正则匹配：&lt;/p&gt;&#xD;
&lt;p&gt;var s="AA_123_BB_456_CC";&lt;/p&gt;&#xD;
&lt;p&gt;var kk=/((\w)\2)/g;&lt;/p&gt;&#xD;
&lt;p&gt;while(kk.test(s)){&lt;/p&gt;&#xD;
&lt;p&gt;document.write ("&amp;lt;br&amp;gt;"+RegExp.$1);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;得到结果：&lt;/p&gt;&#xD;
&lt;p&gt;AA&lt;/p&gt;&#xD;
&lt;p&gt;BB&lt;/p&gt;&#xD;
&lt;p&gt;CC&lt;/p&gt;&#xD;
&lt;p&gt;如果正则表达式没有g参数，则每次test都是从头开始匹配，不存在上述问题。&lt;/p&gt;&#xD;
&lt;p&gt;没有g参数的正则表达式：&lt;/p&gt;&#xD;
&lt;p&gt;var kk=/\w\w/;&lt;/p&gt;&#xD;
&lt;p&gt;var kk=new RegExp(\\w\\w);测试：&lt;/p&gt;&#xD;
&lt;p&gt;var s="AABBCC";&lt;/p&gt;&#xD;
&lt;p&gt;var kk=/(\w\w)/;&lt;/p&gt;&#xD;
&lt;p&gt;for(i=0;i&amp;lt;8;i++){&lt;/p&gt;&#xD;
&lt;p&gt;document.write ("&amp;lt;br&amp;gt;"+kk.test(s));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;上面的代码结果是8个true，每次都是AA匹配。&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;true&lt;/p&gt;&#xD;
&lt;p&gt;┄&lt;/p&gt;&#xD;
&lt;p&gt;本文转自：&lt;a target="_blank" href="http://blog.csdn.net/cuixiping/archive/2007/07/03/1677020.aspx"&gt;无心的专栏&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/2085344.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/06/20/2085344.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/04/15/2017296.html</id><title type="text">[转载]分享8个超棒的免费高质量图标搜索引擎</title><summary type="text">在工作中，我们经常需要用到图标素材。你也许能搜到很多的图标资源网站，但要找到免费的高质量图标却很难，这就是为什么我今天要与大家分享这些优秀的免费质量图标搜索引擎，相信在这些网站你能找到你要的东西。如果你知道更多更好的网站，欢迎与我们分享！FindIconsFindIcons 是我最喜欢的图标搜索引擎，目前已拥有超过 300,000 个图标资源。IconFinderIconfinder 能帮助你快速找到需要的高质量图标，目前已拥有超过 150,000 个图标资源。MrIconsMrIcons 也是非常不错的图标搜索引擎，拥有 125,174 个图标资源。IconletIconlet 是一个查找.</summary><published>2011-04-15T08:10:00Z</published><updated>2011-04-15T08:10:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/04/15/2017296.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/04/15/2017296.html"/><content type="html">&lt;p&gt;在工作中，我们经常需要用到图标素材。你也许能搜到很多的图标资源网站，但要找到免费的高质量图标却很难，这就是为什么我今天要与大家分享这些优秀的免费质量图标搜索引擎，相信在这些网站你能找到你要的东西。如果你知道更多更好的网站，欢迎与我们分享！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://findicons.com/"&gt;&lt;strong&gt;FindIcons&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;FindIcons 是我最喜欢的图标搜索引擎，目前已拥有超过 300,000 个图标资源。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.findicons.com/"&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/36987/2011040823303098.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.iconfinder.com/"&gt;&lt;strong&gt;IconFinder&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Iconfinder 能帮助你快速找到需要的高质量图标，目前已拥有超过 150,000 个图标资源。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.iconfinder.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/IconFinder_thumb.jpg" alt="IconFinder" title="IconFinder" border="0" height="249" width="544" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.mricons.com/"&gt;&lt;strong&gt;MrIcons&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MrIcons 也是非常不错的图标搜索引擎，拥有 125,174 个图标资源。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.mricons.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/MrIcons_thumb.jpg" alt="MrIcons" title="MrIcons" border="0" height="341" width="544" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.iconlet.com/"&gt;&lt;strong&gt;Iconlet&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Iconlet 是一个查找图标等图片资源的搜索引擎。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.iconlet.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/Iconlet_thumb.jpg" alt="Iconlet" title="Iconlet" border="0" height="249" width="544" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.iconscan.com/"&gt;&lt;strong&gt;IconScan&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这是一个用于查找 ICO 格式图标的搜索引擎，拥有超过 80,000 个图标文件。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.iconscan.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/IconScan_thumb.jpg" alt="IconScan" title="IconScan" border="0" height="168" width="504" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.iconseeker.com/"&gt;&lt;strong&gt;IconSeeker&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IconSeeker 是最好的图标搜索引擎，拥有超过 50,000 张图标资源，下载格式有 PNG, ICO&amp;nbsp; 和 ICNS 三种。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.iconseeker.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/Icon-Seeker_thumb.jpg" alt="Icon-Seeker" title="Icon-Seeker" border="0" height="191" width="504" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://icons-search.com/"&gt;&lt;strong&gt;Icons Search&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Icons-Search 是一个帮助你查找高质量图标的在线搜索工具。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://icons-search.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/Icons-Search_thumb.jpg" alt="Icons-Search" title="Icons-Search" border="0" height="249" width="544" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://www.veryicon.com/"&gt;&lt;strong&gt;VeryIcon&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;VeryIcom 是另外一个帮助你搜索高质量图标的网站，拥有超过 20,000 的高质量图标。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.veryicon.com/"&gt;&lt;img src="http://smashinghub.com/wp-content/uploads/2011/03/VeryIcon_thumb.jpg" alt="VeryIcon" title="VeryIcon" border="0" height="316" width="537" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;转载自：http://www.cnblogs.com/lhb25/archive/2011/04/15/2009563.html&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/2017296.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/04/15/2017296.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/03/03/1970125.html</id><title type="text">平时技巧收集</title><summary type="text">给定一个整数num，判断这个整数是否是2的N次方// 如果一个数是2的N次方，那么这两个数的“按位与”就是0. int num = 8; Response.Write(num &amp;amp; num-1);//----------------------------------------------------------------------js实现的十进制数转换N进制 /** * recursive 递归调用 * @param {Object} num 十进制数 * @param {Object} base 要转换成的进制数 */function recursive(num, base) </summary><published>2011-03-03T09:03:00Z</published><updated>2011-03-03T09:03:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/03/03/1970125.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/03/03/1970125.html"/><content type="html">&lt;p&gt;&lt;span style="color: #ff0000;"&gt;给定一个整数num，判断这个整数是否是2的N次方&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 如果一个数是2的N次方，那么这两个数的&amp;ldquo;按位与&amp;rdquo;就是0.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int num = 8;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(num &amp;amp; num-1);&lt;/p&gt;&#xD;
&lt;p&gt;//----------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;js实现的十进制数转换N进制&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp; * recursive 递归调用&lt;br /&gt;&amp;nbsp;&amp;nbsp; * @param {Object} num 十进制数&lt;br /&gt;&amp;nbsp;&amp;nbsp; * @param {Object} base 要转换成的进制数&lt;br /&gt;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;function recursive(num, base) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var str = "", digit = "0123456789abcdef";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(num==0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //js除运算不清除小数，用Math.floor清一下&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str = recursive(Math.floor(num/base),base);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return str + digit.charAt(num%base);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;使用SQL2005自带扩展函数对字符串进行MD5加密&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;函数hashbytes() ，此函数是微软在SQL SERVER 2005中提供的，可以用来计算一个字符串的 MD5 和 SHA1 值，使用方法如下：&lt;/p&gt;&#xD;
&lt;p&gt;select hashbytes('MD5','000000')&lt;/p&gt;&#xD;
&lt;p&gt;select hashbytes('SHA1','000000')&lt;/p&gt;&#xD;
&lt;p&gt;hashbytes() 函数的返回结果是 varbinary 型，也就是以 0x 开头 16 进制形式的二进制数据。通常情况下，我们需要的都是字符串型的数据,使用系统内置函数 sys.fn_VarBinToHexStr()，如下使用:&lt;/p&gt;&#xD;
&lt;p&gt;select sys.fn_VarBinToHexStr(hashbytes('MD5','000000'))&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;html&amp;nbsp; Checkbox 加边框兼容Firefox及Chrome浏览器&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.&amp;lt;input type="checkbox" name="test" style="&lt;span style="color: #0000ff;"&gt;outline:2px solid red&lt;/span&gt;" /&amp;gt;　&lt;span style="color: #008080;"&gt;对IE没作用&lt;/span&gt;&lt;br /&gt;2.&amp;lt;input type="checkbox" name="test1" style="border:2px solid red" /&amp;gt;&amp;nbsp; &lt;span style="color: #008080;"&gt;对Firefox、Chrome没作用&lt;/span&gt;&lt;br /&gt;3.&amp;lt;input type="checkbox" name="test3" style="&lt;span style="color: #0000ff;"&gt;outline:2px solid red&lt;/span&gt;;border:2px solid red" /&amp;gt;&lt;span style="color: #008080;"&gt;对三者都有作用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;javascript中使用splice方法轻松实现对数组元素的插入、删除、替换&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;方法签名：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Array.prototype.splice(index,count[,elm1,elm2...n])&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;描述：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用Array类型的splice方法可以对数组元素进行插入、替换、删除。该方法讲直接影响当前的数组对象(与.slice(index1,index2)方法不同)并返回被删除的数组项。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;参数：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;index&amp;nbsp; ：数组中元素的起始下标。&lt;/p&gt;&#xD;
&lt;p&gt;count&amp;nbsp; ：需要要被删除或替换的元素个数。&lt;/p&gt;&#xD;
&lt;p&gt;elems&amp;nbsp; ：需要插入到数组中的项。&lt;/p&gt;&#xD;
&lt;p&gt;返回值&amp;nbsp; ：返回从素组中被移除的项。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;演示：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;var items =["a","b","c","d","e"];&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;//删除元素&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;result = items.splice(1,2) &lt;/p&gt;&#xD;
&lt;p&gt;//这个操作删除了示例中items数组中的元素[&amp;ldquo;b&amp;rdquo;，&amp;ldquo;c&amp;rdquo;],并返回[&amp;ldquo;b&amp;rdquo;，&amp;ldquo;c&amp;rdquo;]给result.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;//替换元素&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;result = items.splice(1,2,"x","y") &lt;/p&gt;&#xD;
&lt;p&gt;//这个操作使用元素"x","y"替换了示例中items数组中的元素[&amp;ldquo;b&amp;rdquo;，&amp;ldquo;c&amp;rdquo;],并返回[&amp;ldquo;b&amp;rdquo;，&amp;ldquo;c&amp;rdquo;] 给 result.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;//插入元素&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;result = items.splice(1,0,"x","y")&lt;/p&gt;&#xD;
&lt;p&gt;//这个操作的结果是在示例中items数组的的&amp;ldquo;b&amp;rdquo;元素后插入["x","y"],返回值为空。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1970125.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/03/03/1970125.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/02/22/1961247.html</id><title type="text">ActionScript3.0平铺由外部加载的图片</title><summary type="text">var backImage:MovieClip = new MovieClip();this.addChild (backImage);var loader:Loader = new Loader();loader.load (new URLRequest("http://www.baidu.com/img/logo-yy.gif"));loader.contentLoaderInfo.addEv...</summary><published>2011-02-22T06:04:00Z</published><updated>2011-02-22T06:04:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/02/22/1961247.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/02/22/1961247.html"/><content type="html">&lt;div &gt;&#xD;
&lt;pre &gt;var backImage:MovieClip = new MovieClip();&#xD;
&#xD;
this.addChild (backImage);&#xD;
&#xD;
var loader:Loader = new Loader();&#xD;
loader.load (new URLRequest("http://www.baidu.com/img/logo-yy.gif"));&#xD;
loader.contentLoaderInfo.addEventListener (Event.COMPLETE,showLoadResult);&#xD;
&#xD;
function showLoadResult (event:Event):void {&#xD;
        var _bitmap:Bitmap = Bitmap(loader.content);&#xD;
        var matrix:Matrix = new Matrix(1, 0, 0, 1, this.stage.stageWidth / 2, this.stage.stageHeight / 2);&#xD;
        var sampleSprite:Sprite = new Sprite();&#xD;
		//sampleSprite.width=500;&#xD;
		//sampleSprite.height=500;&#xD;
        sampleSprite.graphics.beginBitmapFill (_bitmap.bitmapData, matrix , true , true);&#xD;
        //sampleSprite.graphics.drawRect (this.stage.stageWidth / 2, this.stage.stageHeight / 2, _bitmap.width, _bitmap.height);&#xD;
		 sampleSprite.graphics.drawRect (0, 0, this.stage.stageWidth, this.stage.stageHeight);&#xD;
        sampleSprite.graphics.endFill ();&#xD;
        backImage.addChild (sampleSprite);&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1961247.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/02/22/1961247.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/01/18/1938374.html</id><title type="text">截取中英文字符串</title><summary type="text">代码</summary><published>2011-01-18T07:14:00Z</published><updated>2011-01-18T07:14:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/01/18/1938374.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/01/18/1938374.html"/><content type="html">&lt;div onclick="cnblogs_code_show('d3f2aff9-779e-4343-9f81-ce24242da031')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div id="cnblogs_code_open_d3f2aff9-779e-4343-9f81-ce24242da031"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; substr(str, len)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;str &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;len) { &lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;''&lt;/span&gt;&lt;span style="color: #000000;"&gt;; &lt;br /&gt;   }&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;预期计数：中文2字节，英文1字节&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;循环计数&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;临时字串&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;''&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;str.length;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (str.charCodeAt(i)&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;255&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;按照预期计数增加2&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        a&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;      }&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;        a&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;      }&lt;br /&gt;      &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果增加计数后长度大于限定长度，就直接返回临时字符串&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(a &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; len) { &lt;br /&gt;         &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; temp&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;...&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;; &lt;br /&gt;      }&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;将当前内容加到临时字符串&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;     temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.charAt(i);&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果全部是单字节字符，就直接返回源字符串&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; str;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1938374.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/01/18/1938374.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2011/01/17/1937066.html</id><title type="text">IE处理GIF动画图片onload事件的一个BUG</title><summary type="text">在IE中，如果新建一个image对象，然后添加onload事件加载一个GIF动画图片时，onload执行方法会重复执行，而在除IE外的浏览器就没有这个问题。[代码]经过研究发现，出现这种原因是因为GIF动画里有多个帧，每个帧都会触发一次onload事件，所以会一直执行onload的方法，知道了病因解决起来就简单了。[代码]加载完成后要把onload事件赋为null，这样img动画到下一帧时就没有onload事件可触发了。</summary><published>2011-01-17T01:13:00Z</published><updated>2011-01-17T01:13:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2011/01/17/1937066.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2011/01/17/1937066.html"/><content type="html">&lt;p&gt;在IE中，如果新建一个image对象，然后添加onload事件加载一个GIF动画图片时，onload执行方法会重复执行，而在除IE外的浏览器就没有这个问题。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; img &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Image();&lt;br /&gt;img.src &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;test.gif&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;img.onload &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;  alert(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;这里会重复弹出！&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
经过研究发现，出现这种原因是因为GIF动画里有多个帧，每个帧都会触发一次onload事件，所以会一直执行onload的方法，知道了病因解决起来就简单了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; img &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Image();&lt;br /&gt;img.src &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;test.gif&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;img.onload &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;    alert(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;加载完成，只弹一次&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    img.onload &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;关键点就是这了&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
加载完成后要把onload事件赋为null，这样img动画到下一帧时就没有onload事件可触发了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1937066.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2011/01/17/1937066.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2010/08/02/1790469.html</id><title type="text">BulkLoader类使用</title><summary type="text">BulkLoader提供简单的载入函数，不管要载入的是xml、swf还是声音文件，都只使用同一接口。功能强大，十分推荐。用法，载入xml文件：var bulkLoader:BulkLoader = new BulkLoader('main loading');bulkLoader.add('my_xml_file.xml');bulkLoader.start();引用前面载入的资源：var myX...</summary><published>2010-08-02T06:48:00Z</published><updated>2010-08-02T06:48:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2010/08/02/1790469.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2010/08/02/1790469.html"/><content type="html">&lt;p&gt;BulkLoader提供简单的载入函数，不管要载入的是xml、swf还是声音文件，都只使用同一接口。功能强大，十分推荐。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;用法，载入xml文件：&lt;/p&gt;&#xD;
&lt;p&gt;var bulkLoader:BulkLoader = new BulkLoader('main loading');&lt;br /&gt;bulkLoader.add('my_xml_file.xml');&lt;br /&gt;bulkLoader.start();&lt;/p&gt;&#xD;
&lt;p&gt;引用前面载入的资源：&lt;/p&gt;&#xD;
&lt;p&gt;var myXML:XML = BulkLoader.getLoader("main loading").getXML("my_xml_file.xml");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;更全面的用法:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;package { &lt;br /&gt;import br.com.stimuli.loading.&lt;span style="color: #006699;"&gt;BulkLoader&lt;/span&gt;; &lt;br /&gt;import br.com.stimuli.loading.&lt;span style="color: #006699;"&gt;BulkProgressEvent&lt;/span&gt;; &lt;br /&gt;import flash.events.*; &lt;br /&gt;import flash.display.*; &lt;br /&gt;import flash.media.*; &lt;br /&gt;import flash.net.*; &lt;br /&gt;&lt;br /&gt;public class SimpleExampleMain extends MovieClip { &lt;br /&gt;public var loader : BulkLoader; &lt;br /&gt;public var v : Video; &lt;br /&gt;public var counter : int = 0; &lt;br /&gt;&lt;br /&gt;public function SimpleExampleMain() { &lt;br /&gt;&lt;span style="color: #006699;"&gt;//构建BulkLoader的时候需要给它一个名称 &lt;br /&gt;&lt;/span&gt;loader = new BulkLoader("main-site"); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//设置输出日志 &lt;br /&gt;&lt;/span&gt;loader.logLevel = BulkLoader.LOG_INFO; &lt;br /&gt;&lt;span style="color: #006699;"&gt;//构建好了以后，通过add方法往队列里添加需要加载的对象 &lt;br /&gt;&lt;/span&gt;loader.add("photo.png"); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//添加加载对象时候，也可以给它添加一个id，方便以后调用 &lt;/span&gt;&lt;br /&gt;loader.add("images.jpg", {id:"bg"}); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//还可以通过priority属性调整加载对象的加载顺序，priority值越大，优先权越高，越早加载&lt;/span&gt; &lt;br /&gt;loader.add("list.xml", {priority:20, id:"config-xml"}); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//加载一个动画，加载动画的时候可以用pausedAtStart属性暂停播放动画 &lt;/span&gt;&lt;br /&gt;loader.add("mov.fla", {maxTries:6, id:"the-video", pausedAtStart:true}); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//maxTries属性用于设定加载失败时的重试次数，注意，这里的&amp;ldquo;id&amp;rdquo;用了字符串命名 &lt;/span&gt;&lt;br /&gt;loader.add("song.mp3", {"id":"soundtrack", maxTries:1, priority:100}); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #006699;"&gt;//看了最新版本的文档，已经开始支持swf和json，一阵欣喜。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//添加一个COMPLETE事件，这个事件会在队列里的所有对象都加载完毕后触发 &lt;/span&gt;&lt;br /&gt;loader.addEventListener(BulkLoader.COMPLETE, onAllItemsLoaded); &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//添加一个PROGRESS事件，这个事件会在队列加载时不断触发。通常可以用于监听加载进度。&lt;/span&gt; &lt;br /&gt;loader.addEventListener(BulkLoader.PROGRESS, onAllItemsProgress); &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//队列编辑完毕后用star方法开始加载队列 &lt;/span&gt;&lt;br /&gt;loader.start(); &lt;br /&gt;} &lt;br /&gt;public function onAllItemsLoaded(evt : Event):void { &lt;br /&gt;trace("every thing is loaded!"); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//建立一个Video对象 &lt;br /&gt;&lt;/span&gt;var video : Video = new Video(); &lt;br /&gt;&lt;span style="color: #006699;"&gt;//从队列里提取刚才加载的视频流 &lt;/span&gt;&lt;br /&gt;var theNetStream : NetStream = loader.getNetStream("the-video"); &lt;br /&gt;addChild(video); &lt;br /&gt;video.attachNetStream(theNetStream); &lt;br /&gt;theNetStream.resume(); &lt;br /&gt;video.y = 300; &lt;br /&gt;&lt;span style="color: #006699;"&gt;//提取图片 &lt;br /&gt;&lt;br /&gt;//可以直接通过url提取对象 &lt;/span&gt;&lt;br /&gt;var bitmapCats : Bitmap = loader.getBitmap("photo.png"); &lt;br /&gt;bitmapCats.width = 200; &lt;br /&gt;bitmapCats.scaleY = bitmapCats.scaleX; &lt;br /&gt;addChild(bitmapCats); &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//当然，也可以通过id提取对象 &lt;/span&gt;&lt;br /&gt;var bitmapShoes : Bitmap = loader.getBitmap("bg"); &lt;br /&gt;bitmapShoes.width = 200; &lt;br /&gt;bitmapShoes.scaleY = bitmapShoes.scaleX; &lt;br /&gt;bitmapShoes.x = 220; &lt;br /&gt;addChild(bitmapShoes); &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//提取音频 &lt;/span&gt;&lt;br /&gt;var soundtrack : Sound = loader.getSound("soundtrack"); &lt;br /&gt;soundtrack.play(); &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006699;"&gt;//提取一个xml文档 &lt;/span&gt;&lt;br /&gt;var theXML : XML = loader.getXML("config-xml"); &lt;br /&gt;trace(theXML); &lt;br /&gt;} &lt;br /&gt;&lt;span style="color: #006699;"&gt;//通过BulkProgressEvent的loadingStatus方法可以显示加载过程中的所有信息！&lt;/span&gt; &lt;br /&gt;public function onAllItemsProgress(evt : BulkProgressEvent):void { &lt;br /&gt;trace(evt.loadingStatus()); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;这里特别提出一点，就是加入progess事件，当载入的对象太多，函数中的totalBytes并不能同步获取所有资源的Bytes，evt.loadingStatus(）方法列出了所有的onProgess可以检测到的属性，通过N此检测，我确信这是一个BUG。loadedBytes是正常显示，而totalBytes会在loading接近尾声的时候才能够获取。我查看了code.google的文档，找到了一个方法，还没有去验证 loader.get("id").addEventListener(Event.COMPLETE,onBackgroundLoaded)获取众多资源中的特定支援，应用在Complete方法上，这样是否同样可以应用在PROGRESS恩？如果在获取每个单一资源的以后执行break，再把单一资源的totalBytes相加在一起，是否可以得出我们在总的onProgess方法里获取不到的totalBytes？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;文章转自：&lt;a href="http://amazonite.blog.sohu.com/131966709.html"&gt;http://amazonite.blog.sohu.com/131966709.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1790469.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2010/08/02/1790469.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2010/06/11/1756527.html</id><title type="text">Asp.net缓存动态图片</title><summary type="text">最近在模仿QQ的相册，发现QQ相册中的大小图片都是动态的，通过抓包工具发现Http返回的状态码是304.大家应该都知道当浏览器缓存了文件就直接从缓存中读取，状态码就是304.所以QQ相册的这种动态缓存技术让我研究了一段时间，现把研究结果记录下来，备用。实现原理：首先，要知道原始图片的最后一次修改时间。其次，获取本地缓存文件夹中该文件的时间。最后，两个时间比较，如果本地缓存的时间大于原始图片最后一次...</summary><published>2010-06-11T09:18:00Z</published><updated>2010-06-11T09:18:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2010/06/11/1756527.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2010/06/11/1756527.html"/><content type="html">&lt;p&gt;最近在模仿QQ的相册，发现QQ相册中的大小图片都是动态的，通过抓包工具发现Http返回的状态码是304.&lt;/p&gt;&#xD;
&lt;p&gt;大家应该都知道当浏览器缓存了文件就直接从缓存中读取，状态码就是304.所以QQ相册的这种动态缓存技术让我研究了一段时间，现把研究结果记录下来，备用。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;实现原理：&lt;/p&gt;&#xD;
&lt;p&gt;首先，要知道原始图片的最后一次修改时间。&lt;/p&gt;&#xD;
&lt;p&gt;其次，获取本地缓存文件夹中该文件的时间。&lt;/p&gt;&#xD;
&lt;p&gt;最后，两个时间比较，如果本地缓存的时间大于原始图片最后一次修改的时间，那么就告诉浏览器本地已经有这个文件了，不用再去请求了，将HTTP状态值置为304即可；否则就去动态生成你需要的小图片，并且将这个小图片通过设置 Last-Modified HTTP标头来实现本地访问时间。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;好了，原理我们知道了，那代码怎么实现呢？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div onclick="cnblogs_code_show('d9609a33-beb6-44ed-afba-989a1342a222')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div  id="cnblogs_code_open_d9609a33-beb6-44ed-afba-989a1342a222"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Page_Load(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; imgPath &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullOrEmpty(Request[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;imgPath&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]) &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt; : Request[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;imgPath&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;].ToString();&lt;br /&gt;       &lt;br /&gt;        Response.ContentType &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;image/jpeg&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;       &lt;br /&gt;        DateTime contentModified &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.IO.File.GetLastWriteTime(imgPath); &lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (IsClientCached(contentModified))&lt;br /&gt;        {&lt;br /&gt;            Response.StatusCode &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;304&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;br /&gt;            Response.SuppressContent &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;                Thumbnail.GenerateHighThumbnail(imgPath, &lt;/span&gt;&lt;span style="color: #800080;"&gt;80&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;80&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;这里是生成缩略图的代码，网上到处都是，这里就不展现了。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;br /&gt;            Response.Cache.SetETagFromFileDependencies();&lt;br /&gt;            Response.Cache.SetAllowResponseInBrowserHistory(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;);           &lt;br /&gt;&lt;br /&gt;            Response.Cache.SetLastModified(contentModified);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; IsClientCached(DateTime contentModified)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; header &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Request.Headers[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;If-Modified-Since&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (header &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            DateTime isModifiedSince;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (DateTime.TryParse(header, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; isModifiedSince))&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; isModifiedSince &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DateTime.Parse(contentModified.ToString());&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    } &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;重点说一下IsClientCached方法中的 return isModifiedSince &amp;gt;= &lt;span style="color: #ff6600;"&gt;DateTime.Parse(contentModified.ToString()); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里contentModified本来就是DateTime类型，为什么还要把它转成字符串，然后再转回日期型呢？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我在这里折腾了好长时间，是因为我们取出原始图片最后一次修改的时间精确到毫秒，而通过Request.Headers["If-Modified-Since"];请求的结果是伦敦标准时间，没有毫秒值，所以如果不转换一下就会出现已经缓存的图片，由于毫秒的问题，使return isModifiedSince &amp;gt;= &lt;span style="color: #ff6600;"&gt;DateTime.Parse(contentModified.ToString()); &lt;span style="color: #000000;"&gt;返回false，这里转换后将毫秒去掉后就可以正常了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1756527.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2010/06/11/1756527.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Lewis/archive/2010/05/13/1734694.html</id><title type="text">JS文件传参及处理技巧</title><summary type="text">其实为js文件传参是很久就接触过的一个问题，只是一直没有放在心上，今天在无忧看到又有人问这个问题，今日总结一下。解决思路：1、首先获取到当前JS文件的SRC属性，这里有一个小技巧：我们只需要获取当前页面最后一个script标记内容即可。为什么？？因为JS是顺序解析的，当前JS脚本解析时后面的js都还没有解析到，当然就认为自己就是最后一个script了。此外，这样获取还有一个好处：我们可以多次引用同...</summary><published>2010-05-13T08:48:00Z</published><updated>2010-05-13T08:48:00Z</updated><author><name>Ricebug</name><uri>http://www.cnblogs.com/Lewis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Lewis/archive/2010/05/13/1734694.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Lewis/archive/2010/05/13/1734694.html"/><content type="html">&lt;p&gt;其实为js文件传参是很久就接触过的一个问题，只是一直没有放在心上，今天在无忧看到又有人问这个问题，今日总结一下。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;解决思路：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1、首先获取到当前JS文件的SRC属性，这里有一个小技巧：我们只需要获取当前页面最后一个script标记内容即可。&lt;br /&gt;为什么？？&lt;span style="color: #ff0000;"&gt;因为JS是顺序解析的，当前JS脚本解析时后面的js都还没有解析到，当然就认为自己就是最后一个script了。&lt;/span&gt;此外，这样获取还有一个好处：&lt;span style="color: #ff0000;"&gt;我们可以多次引用同一个文件且传入不同的参数，这样可以在js文件中根据参数不同做不同处理，很巧妙把！简直就是动态语言了。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;代码如下：&lt;br /&gt;　　&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;scripts&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;document.getElementsByTagName(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;　　var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;curJS&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;scripts[scripts.length&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;curJS就是我们当前的js文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&#xD;
&lt;p&gt;得到这个就好办了，通过curJS.src即可获取到完整的路径内容（包括参数）。&lt;br /&gt;&lt;br /&gt;2、下面的就是解析参数内容了，解析的过程相当简单，相信很多人都容易完成这一步。&lt;br /&gt;但我们要对一个特殊情况进行处理：&lt;span style="color: #ff0000;"&gt;如果一个参数被传入了多次，则要将该参数值转换为数组存储每一个传入的值。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;完整测试脚本如下：&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;　　&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;getArgs&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sc&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;document.getElementsByTagName('script');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;paramsArr&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;sc[sc.length&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;].src.split('&lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt;')[&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;].split('&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;{},argsStr&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;[],param,t,name,value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,len&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;paramsArr.length;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;len;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;param&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;paramsArr[i].split('&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;param[&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;],value&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;param[&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args[name]&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;undefined&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;参数尚不存在&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args[name]&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args[name]&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;参数已经存在则保存为数组&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args[name]&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;[args[name]]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args[name].push(value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;已经是数组的&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args[name].push(value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;在实际应用中下面的showArg和args.toString可以删掉，这里只是为了测试函数getArgs返回的内容&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;showArg&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(x){&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;转换不同数据的显示方式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(x)&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;!/&lt;/span&gt;&lt;span style="color: #000000;"&gt;\d&lt;/span&gt;&lt;span style="color: #000000;"&gt;+/&lt;/span&gt;&lt;span style="color: #000000;"&gt;.test(x))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;x&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;字符串&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;instanceof&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Array)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;[&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;x&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;数组&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;数字&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;组装成json格式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args.toString&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args)&amp;nbsp;argsStr.push(i&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;':'&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;showArg(args[i]));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;'{'&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;argsStr.join(',')&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;'}';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;args;}&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;以json格式返回获取的所有参数&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;})();&lt;br /&gt;&lt;br /&gt;alert(getArgs());&lt;br /&gt;alert(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;username:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;getArgs()[&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;username&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;测试示例的HTML源码：&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;　　&lt;span style="color: #0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;DOCTYPE&amp;nbsp;html&amp;nbsp;PUBLIC&amp;nbsp;"-//W3C//DTD&amp;nbsp;XHTML&amp;nbsp;1.0&amp;nbsp;Transitional//EN"&amp;nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;new&amp;nbsp;document&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="generator"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="editplus"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="author"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="keywords"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="description"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="test.js?id=4&amp;amp;username=yemoo&amp;amp;id=1&amp;amp;uid=110"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="test.js?id=5&amp;amp;username=ajaxbbs&amp;amp;id=7&amp;amp;uid=253"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="test.js?id=6&amp;amp;username=jack&amp;amp;id=8&amp;amp;uid=258"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;文章转自：&lt;a href="http://www.cnitblog.com/yemoo/archive/2008/03/11/40799.html"&gt;http://www.cnitblog.com/yemoo/archive/2008/03/11/40799.html&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Lewis/aggbug/1734694.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Lewis/archive/2010/05/13/1734694.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
