﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-DHTML</title><link>http://www.blogjava.net/paulwong/category/14164.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 02 Jan 2011 09:42:40 GMT</lastBuildDate><pubDate>Sun, 02 Jan 2011 09:42:40 GMT</pubDate><ttl>60</ttl><item><title>javascript 调试工具</title><link>http://www.blogjava.net/paulwong/archive/2011/01/01/342137.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 01 Jan 2011 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2011/01/01/342137.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/342137.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2011/01/01/342137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/342137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/342137.html</trackback:ping><description><![CDATA[项目前台需要写大量的js，寻求一种有效的调试工具，朋友告诉我office就可以，试试用着感觉挺好。<br />
Microsoft word调试工具Windows Script Debugger下载地址，要看清楚版本哦！<br />
<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=E606E71F-BA7F-471E-A57D-F2216D81EC3D">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=E606E71F-BA7F-471E-A57D-F2216D81EC3D</a>&nbsp;<br />
默认情况office是安装好的，视图-&gt;工具栏-&gt;web 工具箱-&gt;麻花状图标(Microsoft Script Editor),如果已经安装好，则会打开Microsoft Script Editor。<br />
当然浏览器也要设置相应的属性支持js调试：iternet高级选项-&gt;高级-&gt;禁用脚本调试去掉。<br />
当我们在前台页面写js时，一般情况下只要出错则弹出调试对话框，但是如果想跟踪变量的话，只要在js中加"debugger"即可，当程序运行到debugger处会自己弹出调试窗口，和Eclipse中使用调试java代码一样可以跟踪变量，非常方便
<img src ="http://www.blogjava.net/paulwong/aggbug/342137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2011-01-01 23:00 <a href="http://www.blogjava.net/paulwong/archive/2011/01/01/342137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript图片浏览器的核心——图片预加载</title><link>http://www.blogjava.net/paulwong/archive/2010/11/13/337993.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 13 Nov 2010 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2010/11/13/337993.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/337993.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2010/11/13/337993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/337993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/337993.html</trackback:ping><description><![CDATA[网站开发时经常需要在某个页面需要实现对大量图片的浏览，如果考虑流量的话，大可以像pconline一样每个页面只显示一张图片，让用户每看一张图片就需要重新下载一下整个页面。不过，在web2.0时代，更多人愿意用javascript来实现一个图片浏览器，让用户无需等待过长的时间就能看到其他图片。<br />
<br />
知道了一张图片的地址，需要把它在一个固定大小的html容器（可以是div等）里边显示出来，最重要的当然是需要知道这张即将显示的图片的宽和高，然后再结合容器的宽和高，按照一定的缩放比例使图片显示出来。因此，实现图片预加载就成为图片浏览器的核心功能了。<br />
<br />
做过图片翻转效果的朋友其实都知道，要让图片轮换的时候不出现等待，最好是先让图片下载到本地，让浏览器缓存起来。这时，一般都会用到js里边的Image对象。一般的手段无非这样：<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_25_65_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_65_Open_Text.style.display='none'; Codehighlighter1_25_65_Closed_Image.style.display='inline'; Codehighlighter1_25_65_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_25_65_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_25_65_Closed_Text.style.display='none'; Codehighlighter1_25_65_Open_Image.style.display='inline'; Codehighlighter1_25_65_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;preLoadImg(url)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_25_65_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_25_65_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Image();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />img.src&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<br />
通过调用preLoadImg函数，传入图片的url，就能使图片预先下载下来了。实际上，这里用到的预下载功能也和这基本一致。图片预下载下来后，通过 img的width和height属性，就能知道图片的宽和高了。但是需要考虑到，在做图片浏览器功能时，图片都是实时显示的。比如你点了显示的按钮，这个时候才会调用上边类似的代码来加载图片。因此，如果你直接用img.width的时候，图片还没有完全下载下来。因此，需要用一些异步的方法，等到图片下载完毕的时候才会再对img的width和height进行调用。 <font face="Verdana">实现这样的异步方法实际上不难，图片的下载完毕事件也很简单，就是简单的onload事件。因此，我们可以写出下面的代码：<br />
<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_34_176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_176_Open_Text.style.display='none'; Codehighlighter1_34_176_Closed_Image.style.display='inline'; Codehighlighter1_34_176_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_34_176_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_34_176_Closed_Text.style.display='none'; Codehighlighter1_34_176_Open_Image.style.display='inline'; Codehighlighter1_34_176_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;loadImage(url,&nbsp;callback)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_34_176_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_34_176_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Image();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />img.src&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img id="Codehighlighter1_98_173_Open_Image" onclick="this.style.display='none'; Codehighlighter1_98_173_Open_Text.style.display='none'; Codehighlighter1_98_173_Closed_Image.style.display='inline'; Codehighlighter1_98_173_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_98_173_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_98_173_Closed_Text.style.display='none'; Codehighlighter1_98_173_Open_Image.style.display='inline'; Codehighlighter1_98_173_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />img.onload&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_98_173_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_98_173_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">图片下载完毕时异步调用callback函数。</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">callback.call(img);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;将callback函数this指针切换为img。</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" /></span><span style="color: #000000">}</span></span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<br />
<br />
<font face="Verdana">好了，再来写一个测试用例。<br />
</font><br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_20_41_Open_Image" onclick="this.style.display='none'; Codehighlighter1_20_41_Open_Text.style.display='none'; Codehighlighter1_20_41_Closed_Image.style.display='inline'; Codehighlighter1_20_41_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_20_41_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_20_41_Closed_Text.style.display='none'; Codehighlighter1_20_41_Open_Image.style.display='inline'; Codehighlighter1_20_41_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;imgLoaded()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_20_41_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_20_41_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />alert(</span><span style="color: #0000ff">this</span><span style="color: #000000">.width);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p><br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="loadImage"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="loadImage('aaa.jpg',imgLoaded)"</span><span style="color: #0000ff">/&gt;</span></div>
<br />
<font face="Verdana">在firefox中测试一下，发现不错，果然和预想的效果一样，在图片下载后，就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。<br />
</font><br />
<font face="Verdana">不过，做到这一步，先别高兴太早——还需要考虑一下浏览器的兼容性，于是，赶紧到ie里边测试一下。没错，同样弹出了图片的宽度。但是，再点击load的时候，情况就不一样了，什么反应都没有了。刷新一下，也同样如此。<br />
</font><br />
<font face="Verdana">经过对多个浏览器版本的测试，发现ie6、opera都会这样，而firefox和safari则表现正常。其实，原因也挺简单的，就是因为浏览器的缓存了。当图片加载过一次以后，如果再有对该图片的请求时，由于浏览器已经缓存住这张图片了，不会再发起一次新的请求，而是直接从缓存中加载过来。对于 firefox和safari，它们视图使这两种加载方式对用户透明，同样会引起图片的onload事件，而ie和opera则忽略了这种同一性，不会引起图片的onload事件，因此上边的代码在它们里边不能得以实现效果。<br />
</font><br />
<font face="Verdana">怎么办呢？最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候，因为不需要等待，这个状态值就直接是表明已经下载了，而从http请求加载时，因为需要等待下载，这个值显示为未完成。这样的话，就可以搞定了。<br />
</font><br />
<font face="Verdana">经过一些分析，终于发现一个为各个浏览器所兼容的Image的属性——complete。所以，在图片onload事件之前先对这个值做一下判断即可。最后，代码变成如下的样子：<br />
</font>
<p><br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_34_295_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_295_Open_Text.style.display='none'; Codehighlighter1_34_295_Closed_Image.style.display='inline'; Codehighlighter1_34_295_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_34_295_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_34_295_Closed_Text.style.display='none'; Codehighlighter1_34_295_Open_Image.style.display='inline'; Codehighlighter1_34_295_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;loadImage(url,&nbsp;callback)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_34_295_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_34_295_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Image();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建一个Image对象，实现图片的预下载</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">img.src&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img id="Codehighlighter1_116_195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_116_195_Open_Text.style.display='none'; Codehighlighter1_116_195_Closed_Image.style.display='inline'; Codehighlighter1_116_195_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_116_195_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_116_195_Closed_Text.style.display='none'; Codehighlighter1_116_195_Open_Image.style.display='inline'; Codehighlighter1_116_195_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(img.complete)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_116_195_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_116_195_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;如果图片已经存在于浏览器缓存，直接调用回调函数</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">callback.call(img);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">return</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;直接返回，不用再处理onload事件</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" /></span><span style="color: #000000">}</span></span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img id="Codehighlighter1_223_292_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_292_Open_Text.style.display='none'; Codehighlighter1_223_292_Closed_Image.style.display='inline'; Codehighlighter1_223_292_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_223_292_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_223_292_Closed_Text.style.display='none'; Codehighlighter1_223_292_Open_Image.style.display='inline'; Codehighlighter1_223_292_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />img.onload&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_223_292_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_223_292_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">图片下载完毕时异步调用callback函数。</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">callback.call(img);</span><span style="color: #008000">//</span><span style="color: #008000">将回调函数的this替换为Image对象</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" /></span><span style="color: #000000">}</span></span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000">;</span></div>
<br />
经过这么一番折腾，总算是让各个浏览器都能满足我们的目标了。虽然代码很简单，但是却把图片浏览器中最核心的问题解决掉了，接下来你所要做的，仅仅是图片如何呈现的问题了。<br />
</font>
<img src ="http://www.blogjava.net/paulwong/aggbug/337993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2010-11-13 17:24 <a href="http://www.blogjava.net/paulwong/archive/2010/11/13/337993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript 篇 之 扩展String 函数</title><link>http://www.blogjava.net/paulwong/archive/2010/03/25/316491.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 24 Mar 2010 16:38:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2010/03/25/316491.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/316491.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2010/03/25/316491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/316491.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/316491.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_0_58_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_58_Open_Text.style.display='none'; Codehighlighter1_0_58_Closed_Image.style.display='inline'; Codehighlighter1_0_58_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_58_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_58_Closed_Text.style.display='none'; Codehighlighter1_0_58_Open_Image.style.display='inline'; Codehighlighter1_0_58_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_58_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_0_58_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;@brief&nbsp;&nbsp;扩展原生字符串&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;StringEx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img id="Codehighlighter1_77_1725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_1725_Open_Text.style.display='none'; Codehighlighter1_77_1725_Closed_Image.style.display='inline'; Codehighlighter1_77_1725_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_77_1725_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_77_1725_Closed_Text.style.display='none'; Codehighlighter1_77_1725_Open_Image.style.display='inline'; Codehighlighter1_77_1725_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_77_1725_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_77_1725_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img id="Codehighlighter1_84_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_118_Open_Text.style.display='none'; Codehighlighter1_84_118_Closed_Image.style.display='inline'; Codehighlighter1_84_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_84_118_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_118_Closed_Text.style.display='none'; Codehighlighter1_84_118_Open_Image.style.display='inline'; Codehighlighter1_84_118_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_84_118_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_84_118_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;去除字符串前后空格<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;trim&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
<img id="Codehighlighter1_146_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_205_Open_Text.style.display='none'; Codehighlighter1_146_205_Closed_Image.style.display='inline'; Codehighlighter1_146_205_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_146_205_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_205_Closed_Text.style.display='none'; Codehighlighter1_146_205_Open_Image.style.display='inline'; Codehighlighter1_146_205_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_146_205_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_146_205_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.replace(</span><span style="color: #000000">/</span><span style="color: #000000">(</span><span style="color: #000000">^</span><span style="color: #000000">\s</span><span style="color: #000000">*</span><span style="color: #000000">)</span><span style="color: #000000">|</span><span style="color: #000000">(\s</span><span style="color: #000000">*</span><span style="color: #000000">$)</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_217_248_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_248_Open_Text.style.display='none'; Codehighlighter1_217_248_Closed_Image.style.display='inline'; Codehighlighter1_217_248_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_217_248_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_217_248_Closed_Text.style.display='none'; Codehighlighter1_217_248_Open_Image.style.display='inline'; Codehighlighter1_217_248_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_217_248_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_217_248_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;去除左边空格<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ltrim&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
<img id="Codehighlighter1_277_330_Open_Image" onclick="this.style.display='none'; Codehighlighter1_277_330_Open_Text.style.display='none'; Codehighlighter1_277_330_Closed_Image.style.display='inline'; Codehighlighter1_277_330_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_277_330_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_277_330_Closed_Text.style.display='none'; Codehighlighter1_277_330_Open_Image.style.display='inline'; Codehighlighter1_277_330_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_277_330_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_277_330_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.replace(</span><span style="color: #000000">/</span><span style="color: #000000">(</span><span style="color: #000000">^</span><span style="color: #000000">\s</span><span style="color: #000000">*</span><span style="color: #000000">)</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_342_373_Open_Image" onclick="this.style.display='none'; Codehighlighter1_342_373_Open_Text.style.display='none'; Codehighlighter1_342_373_Closed_Image.style.display='inline'; Codehighlighter1_342_373_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_342_373_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_342_373_Closed_Text.style.display='none'; Codehighlighter1_342_373_Open_Image.style.display='inline'; Codehighlighter1_342_373_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_342_373_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_342_373_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;去除右边空格<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;rtrim&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
<img id="Codehighlighter1_402_460_Open_Image" onclick="this.style.display='none'; Codehighlighter1_402_460_Open_Text.style.display='none'; Codehighlighter1_402_460_Closed_Image.style.display='inline'; Codehighlighter1_402_460_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_402_460_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_402_460_Closed_Text.style.display='none'; Codehighlighter1_402_460_Open_Image.style.display='inline'; Codehighlighter1_402_460_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_402_460_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_402_460_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.replace(</span><span style="color: #000000">/</span><span style="color: #000000">(\s</span><span style="color: #000000">*</span><span style="color: #000000">$)</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_472_505_Open_Image" onclick="this.style.display='none'; Codehighlighter1_472_505_Open_Text.style.display='none'; Codehighlighter1_472_505_Closed_Image.style.display='inline'; Codehighlighter1_472_505_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_472_505_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_472_505_Closed_Text.style.display='none'; Codehighlighter1_472_505_Open_Image.style.display='inline'; Codehighlighter1_472_505_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_472_505_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_472_505_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;避免XSS&nbsp;攻击<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;avoidXSS&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
<img id="Codehighlighter1_537_1725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_537_1725_Open_Text.style.display='none'; Codehighlighter1_537_1725_Closed_Image.style.display='inline'; Codehighlighter1_537_1725_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_537_1725_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_537_1725_Closed_Text.style.display='none'; Codehighlighter1_537_1725_Open_Image.style.display='inline'; Codehighlighter1_537_1725_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_537_1725_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_537_1725_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;strTemp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.replace(</span><span style="color: #000000">/&amp;/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&amp;amp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;strTemp.replace(</span><span style="color: #000000">/&lt;/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&amp;lt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;strTemp.replace(</span><span style="color: #000000">/&gt;/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&amp;gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;strTemp.replace(</span><span style="color: #000000">/</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">/g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">quot;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;strTemp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;获取字符串的字节长度&nbsp;汉字默认双字节<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;byteLength&nbsp;:&nbsp;function()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.replace(/[^\x00-\xff]/g,</span><span style="color: #000000">"</span><span style="color: #000000">**</span><span style="color: #000000">"</span><span style="color: #000000">).length;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;除去HTML标签<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@example&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id=</span><span style="color: #000000">"</span><span style="color: #000000">test1</span><span style="color: #000000">"</span><span style="color: #000000">&gt;aaaa&lt;/div&gt;&nbsp;&nbsp;=&gt;&nbsp;&nbsp;aaaa&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;removeHTML&nbsp;:&nbsp;function()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.replace(/&lt;\/?[^&gt;]+&gt;/gi,&nbsp;'');<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格式化字符串<br />
<img id="Codehighlighter1_1191_1193_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1191_1193_Open_Text.style.display='none'; Codehighlighter1_1191_1193_Closed_Image.style.display='inline'; Codehighlighter1_1191_1193_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1191_1193_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1191_1193_Closed_Text.style.display='none'; Codehighlighter1_1191_1193_Open_Image.style.display='inline'; Codehighlighter1_1191_1193_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@example&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span id="Codehighlighter1_1191_1193_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1191_1193_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">0</span><span style="color: #000000">}</span></span><span style="color: #000000">&lt;/</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span id="Codehighlighter1_1200_1202_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1200_1202_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">1</span><span style="color: #000000">}</span></span><span style="color: #000000">"</span><span style="color: #000000">.format(txt0,txt1)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;format&nbsp;:&nbsp;function()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;args&nbsp;=&nbsp;[];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0,&nbsp;il&nbsp;=&nbsp;arguments.length;&nbsp;i&nbsp;&lt;&nbsp;il;&nbsp;i++)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args.push(arguments[i]);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.replace(/\{(\d+)\}/g,&nbsp;function(m,&nbsp;i)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;args[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@brief&nbsp;字符串转数字<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;toInt&nbsp;:&nbsp;function()&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Math.floor(this);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />for&nbsp;(var&nbsp;it&nbsp;in&nbsp;StringEx)&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String.prototype[it]&nbsp;=&nbsp;StringEx[it];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />}</span></div>
</span></span><br />
<br />
test:<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;strTest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;-{0}这里是扩展原生字符串test{1}-&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(strTest.length);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;output&nbsp;:&nbsp;26</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(strTest.ltrim().length);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;23</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(strTest.rtrim().length);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;25</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(strTest.byteLength());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;36</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(strTest.format(</span><span style="color: #000000">"</span><span style="color: #000000">abc</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">def</span><span style="color: #000000">"</span><span style="color: #000000">));&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;-abc这里是扩展原生字符串testdef-&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;strNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">89989</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;strNumber.toInt());&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;number</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;domTest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">test1</span><span style="color: #000000">"</span><span style="color: #000000">).outerHTML;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(domTest);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(domTest.avoidXSS());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(domTest.removeHTML());</span></div>
<br />
<br />
<a href="http://www.blogjava.net/Files/JAVA-HE/js_string.rar"><strong><u>下载&nbsp;string.js&nbsp;及 &nbsp;demo</u></strong></a>&nbsp; <br />
<img src ="http://www.blogjava.net/paulwong/aggbug/316491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2010-03-25 00:38 <a href="http://www.blogjava.net/paulwong/archive/2010/03/25/316491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>可变列宽的表格</title><link>http://www.blogjava.net/paulwong/archive/2006/11/24/83291.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 24 Nov 2006 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2006/11/24/83291.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/83291.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2006/11/24/83291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/83291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/83291.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->				/*				 表格 				*/										.ResizedColTable				{										    border-bottom				:...&nbsp;&nbsp;<a href='http://www.blogjava.net/paulwong/archive/2006/11/24/83291.html'>阅读全文</a><img src ="http://www.blogjava.net/paulwong/aggbug/83291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2006-11-24 16:05 <a href="http://www.blogjava.net/paulwong/archive/2006/11/24/83291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>showModalDialog和showModelessDialog</title><link>http://www.blogjava.net/paulwong/archive/2006/08/16/63893.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 16 Aug 2006 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2006/08/16/63893.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/63893.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2006/08/16/63893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/63893.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/63893.html</trackback:ping><description><![CDATA[
一、showModalDialog和showModelessDialog有什么不同？<br /><br /><br />
　　showModalDialog：被打开后就会始终保持输入焦点。除非对话框被关闭，否则用户无法切换到主窗口。类似alert的运行效果。<br />
　　showModelessDialog：被打开后，用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)<br /><br /><br /><br />
二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口？<br /><br /><br />
　　在被打开的网页里加上&lt;base target="_self"&gt;就可以了。这句话一般是放在&lt;html&gt;和&lt;body&gt;之间的。<br /><br />
三、怎样才刷新showModalDialog和showModelessDialog里的内容？<br /><br /><br />
　　在showModalDialog和showModelessDialog里是不能按F5刷新的，又不能弹出菜单。这个只能依靠javascript了，以下是相关代码：<br /><br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">body onkeydown</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">if (event.keyCode==116){reload.click()}</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">a id</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">reload</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> href</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">filename.htm</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> style</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">display:none</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">reload<img src="http://www.blogjava.net/images/dot.gif" /></span><span style="color: rgb(0, 0, 0);">&lt;/</span><span style="color: rgb(0, 0, 0);">a</span><span style="color: rgb(0, 0, 0);">&gt;</span></div><br /><br />
　　将filename.htm替换成网页的名字然后将它放到你打开的网页里，按F5就可以刷新了，注意，这个要配合<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">base </span><span style="color: rgb(255, 0, 0);">target</span><span style="color: rgb(0, 0, 255);">="_self"</span><span style="color: rgb(0, 0, 255);">&gt;</span></div><br />使用，不然你按下F5会弹出新窗口的。<br /><br />
四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。<br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">input </span><span style="color: rgb(255, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">="button"</span><span style="color: rgb(255, 0, 0);"> value</span><span style="color: rgb(0, 0, 255);">="关闭"</span><span style="color: rgb(255, 0, 0);"> onclick</span><span style="color: rgb(0, 0, 255);">="window.close()"</span><span style="color: rgb(0, 0, 255);">&gt;</span></div><br />
　　也要配合&lt;base target="_self"&gt;，不然会打开一个新的IE窗口，然后再关掉的。<br /><br />
五、showModalDialog和showModelessDialog数据传递技巧。<br />
　　(作者语：本来想用一问一答形式来写的，但是我想不出这个怎么问，所以只好这样了。)<br />
　　这个东西比较麻烦，我改了好几次了不是没办法说明白(语文水平越来越差了)，只好用个例子说明了。<br />
　　例子：<br />
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name<br />
一般的传递方式：<br /><br />
window.showModalDialog("filename.htm",var_name)//传递var_name变量<br />
在showModalDialog(或showModelessDialog)读取和设置时：<br />
lert(window.dialogArguments)//读取var_name变量<br />
window.dialogArguments="oyiboy"//设置var_name变量<br />
　　这种方式是可以满足的，但是当你想在操作var_name同时再操作第二个变理var_id时呢？就无法再进行操作了。这就是这种传递方式的局限性。<br />
　　　　<br />
以下是我建议使用的传递方式：<br />
　　//不管要操作什么变量，只直传递主窗口的window对象<br />
在showModalDialog(或showModelessDialog)读取和设置时：<br />
alert(window.dialogArguments.var_name)//读取var_name变量<br />
window.dialogArguments.var_name="oyiboy"//设置var_name变量<br />
　同时我也可以操作var_id变量<br />
　alert(window.dialogArguments.var_id)//读取var_id变量<br />
　window.dialogArguments.var_id="001"//设置var_id变量<br /><br />
　同样还可以对主窗口的任何对象进行操作，如form对象里的元素。<br />
　　window.dialogArguments.form1.index1.value="这是在设置index1元素的值"<br /><br />
六、多个showModelessDialog的相互操作。<br />
　　因为光说很费劲，我就偷点懒，直接用代码来说了，如果不明白的话那就直接来信(oyiboy#163.net(使用时请将#改成@))问我吧。<br /><br />
　　以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。<br /><br />
　　主文件的部份js代码。<br />
　　var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px") //打开控制窗口<br />
　　var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px")　　//打开被控制窗口<br /><br />
　　控制.htm的部份代码。<br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">script</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"><br />　　　　</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 128, 0);">//</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 128, 0);">操作位置数据，因为窗口的位置数据是"xxxpx"方式的，所以需要这样的一个特殊操作函数。</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 128, 0);"><br /></span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">function</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"> countNumber(A_strNumber,A_strWhatdo)<br />{<br />A_strNumber</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">=</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">A_strNumber.replace('px','')<br />A_strNumber</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">-=</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">0</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"><br /></span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">switch</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">(A_strWhatdo)<br />{<br /></span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">case</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"> </span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">-</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">:A_strNumber</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">-=</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">10</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">;</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">break</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">;<br /></span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">case</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"> </span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">+</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">:A_strNumber</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">+=</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">10</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">;</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">break</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">;<br />}<br /></span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">return</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"> A_strNumber </span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">+</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"> </span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">px</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">"</span><span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);"><br />}<br />　　</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">script</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br /></span></div><br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">input </span><span style="color: rgb(255, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">="button"</span><span style="color: rgb(255, 0, 0);"> onclick</span><span style="color: rgb(0, 0, 255);">="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')"</span><span style="color: rgb(255, 0, 0);"> value</span><span style="color: rgb(0, 0, 255);">="上移"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />　　</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">input </span><span style="color: rgb(255, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">="button"</span><span style="color: rgb(255, 0, 0);"> onclick</span><span style="color: rgb(0, 0, 255);">="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')"</span><span style="color: rgb(255, 0, 0);"> value</span><span style="color: rgb(0, 0, 255);">="左移"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />　　</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">input </span><span style="color: rgb(255, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">="button"</span><span style="color: rgb(255, 0, 0);"> onclick</span><span style="color: rgb(0, 0, 255);">="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')"</span><span style="color: rgb(255, 0, 0);"> value</span><span style="color: rgb(0, 0, 255);">="右移"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />　　</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">input </span><span style="color: rgb(255, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">="button"</span><span style="color: rgb(255, 0, 0);"> onclick</span><span style="color: rgb(0, 0, 255);">="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')"</span><span style="color: rgb(255, 0, 0);"> value</span><span style="color: rgb(0, 0, 255);">="下移"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br /></span></div><br />
　　以上关键部份是：<br />
窗口命名方式：var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px")<br />
　　变量访问方式：window.dialogArguments.s2.dialogTop<br /><br />
　　这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能，通过这个原理，在showModelessDialog之间相互控制各自的显示页面，传递变量和数据等。这要看各位的发挥了。<img src ="http://www.blogjava.net/paulwong/aggbug/63893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2006-08-16 14:02 <a href="http://www.blogjava.net/paulwong/archive/2006/08/16/63893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>