﻿<?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-byterat-随笔分类-JavaScript &amp; DHTML</title><link>http://www.blogjava.net/byterat/category/16471.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 23 Jan 2008 16:48:54 GMT</lastBuildDate><pubDate>Wed, 23 Jan 2008 16:48:54 GMT</pubDate><ttl>60</ttl><item><title>21个新奇漂亮的Ajax/CSS表格设计</title><link>http://www.blogjava.net/byterat/archive/2008/01/23/177328.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 23 Jan 2008 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2008/01/23/177328.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/177328.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2008/01/23/177328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/177328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/177328.html</trackback:ping><description><![CDATA[<p>当谈到表格数据的设计时，没有太多的网页设计师会有太大的兴趣。今天我们已经收集了20多个功能超大且看上去挺漂亮的Ajax/CSS表格设计，并且教你一些表格设计中所运用的技巧，例如表格数据的排序和过滤等。</p>
<p>OK，让我们来看一下这些表格:</p>
<h4>1. <a onfocus="undefined" href="http://cssglobe.com/lab/tablecloth/" target="_blank">Tablecloth</a></h4>
<p>Tablecloth 由<a onfocus="undefined" href="http://cssglobe.com/" target="_blank">CSS Globe</a> 开发，是一个轻巧易于使用的表格，简洁的将表格样式添加到你的HTML 表格元素中。</p>
<p><a onfocus="undefined" href="http://cssglobe.com/lab/tablecloth/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Tablecloth" src="http://www.reiyee.cn/upload/table/c1.gif" /></a></p>
<h4>2. <a onfocus="undefined" href="http://www.askthecssguy.com/2007/09/sangeeta_asks_the_css_guy_how_1.html" target="_blank">Ask the CSS Guy Table</a></h4>
<p>Ask the CSS Guy Table教给我们要如何去创建能够清晰显出去资料之间的相关联系的表格，例如:点击一个表格元素时，将突了显示这个元素，并且在纵列和横列都显示出相关的类别关系。</p>
<p><a onfocus="undefined" href="http://www.askthecssguy.com/examples/orbitz/example01.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Ask the CSS Guy Table" src="http://www.reiyee.cn/upload/table/c2.gif" /></a></p>
<h4>#3. <a onfocus="undefined" href="http://veerle.duoh.com/blog/comments/a_css_styled_table_version_2/" target="_blank">A CSS styled table version 2</a></h4>
<p><a onfocus="undefined" href="http://veerle.duoh.com/" target="_blank">Veerle Duoh</a> 为我们展示了一个漂亮的表格设计，并教我们如何使用CSS来吸引用户的眼球。</p>
<p><a onfocus="undefined" href="http://veerle.duoh.com/sandbox/csstutorials/tablesv2/table2.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-A CSS styled table version 2" src="http://www.reiyee.cn/upload/table/c4.gif" /></a></p>
<h4>#4. <a onfocus="undefined" href="http://www.phatfusion.net/sortabletable/index.htm" target="_blank">Sortable Table</a></h4>
<p>Sortable Table 演示了如何按升序或降序排列以及如何过滤表格中的数据。</p>
<p><a onfocus="undefined" href="http://www.phatfusion.net/sortabletable/index.htm" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Sortable Table" src="http://www.reiyee.cn/upload/table/c5.gif" /></a></p>
<h4>5. <a onfocus="undefined" href="http://www.askthecssguy.com/2007/05/brett_asks_the_css_guy_if_the.html" target="_blank">Row Locking with CSS and JavaScript</a></h4>
<p>Css Guy再次对表格使用了聚焦高亮的效果，除非用户再次点击，否则表单数据将一直保持亮高。</p>
<p><a onfocus="undefined" href="http://www.askthecssguy.com/examples/rowlock/example8.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Row Locking with CSS and JavaScript" src="http://www.reiyee.cn/upload/table/c3.gif" /></a></p>
<p>他还给了我们另一个示例:<a onfocus="undefined" href="http://www.askthecssguy.com/examples/rowlock/example9.html" target="_blank">another example to Lock rows with radios </a>.</p>
<h4>#6. <a onfocus="undefined" href="http://www.cssplay.co.uk/menu/tablescroll.html" target="_blank">Vertical scrolling tables</a></h4>
<p>如果您有大量的表格数据，但却没有太大的空间来展示它，这可能是个比较好的方法:一个纯CSS的表格与固定的标题和页脚，以及滚动显示的内容。</p>
<p><a onfocus="undefined" href="http://www.cssplay.co.uk/menu/tablescroll.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Vertical scrolling tables" src="http://www.reiyee.cn/upload/table/c6.gif" /></a></p>
<h4>7. <a onfocus="undefined" href="http://www.maxdesign.com.au/presentation/tree-table/" target="_blank">Replicating a Tree table</a></h4>
<p>这是一个使用HTML 和CSS 设计的树形状表格。</p>
<p><a onfocus="undefined" href="http://www.maxdesign.com.au/presentation/tree-table/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Replicating a Tree table" src="http://www.reiyee.cn/upload/table/c7.gif" /></a></p>
<p>8 ) <a onfocus="undefined" href="http://dev.nozav.org/rails_ajax_table.html" target="_blank">Paginate, sort and search a table with Ajax and Rails</a></p>
<p>这个表格提供了一个动态的界面，而不需要重新刷新整个页面。</p>
<p><a onfocus="undefined" href="http://dev.nozav.org/ajaxtable/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-ajax tables" src="http://noupe.com/img/c9.gif" /></a></p>
<h4></h4>
<p>9. <a onfocus="undefined" href="http://icant.co.uk/sandbox/footercollapsetables/" target="_blank">Collapsible tables with DOM and CSS</a></p>
<p>此表格加上箭头形象的脚本提示，用来控制表格的伸展和收缩。</p>
<p><a onfocus="undefined" href="http://icant.co.uk/sandbox/footercollapsetables/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Collapsible tables with DOM and CSS" src="http://www.reiyee.cn/upload/table/c8.gif" /></a></p>
<h4>10. <a onfocus="undefined" href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/" target="_blank">TableSorter plug-in for jQuery</a></h4>
<p>它的主要特性包括多列排序，支持&lt;TH&gt;的rowspan和colspan属性以及许多其他功能。</p>
<p><a onfocus="undefined" href="http://motherrussia.polyester.se/docs/tablesorter/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-TableSorter plug-in for jQuery" src="http://www.reiyee.cn/upload/table/c10.gif" /></a></p>
<h4>11. <a onfocus="undefined" href="http://www.thewatchmakerproject.com/journal/309/stripe-your-tables-the-oo-way" target="_blank">Stripe your tables the OO way</a></h4>
<p>使用了Javascript 为表格中的行进行颜色交替，并且添加了<span class="code">onmouseover</span> 和<span class="code">onmouseout</span> 事件，当鼠标点击时，切换背景颜色。</p>
<p><a onfocus="undefined" href="http://www.thewatchmakerproject.com/zebra.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Stripe your tables the OO way" src="http://www.reiyee.cn/upload/table/c11.gif" /></a></p>
<h4>12. <a onfocus="undefined" href="http://www.chrisesler.com/mootools/mootools-rowcolumnhighlight.php" target="_blank">MooTools Table Row &amp; Column highlighting</a></h4>
<p>基于<a onfocus="undefined" href="http://www.mootools.net/" target="_blank">MooTools</a> 框架，高亮显示鼠标悬停时的单元格所在的行和列。</p>
<p><a onfocus="undefined" href="http://www.chrisesler.com/mootools/mootools-rowcolumnhighlight.php" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-MooTools Table Row &amp; Column highlighting" src="http://www.reiyee.cn/upload/table/c12.gif" /></a></p>
<h4>13. <a onfocus="undefined" href="http://icant.co.uk/csstablegallery/" target="_blank">CSS Table Gallery</a></h4>
<p>93 styled tables是一个专门收集表格样式的站点，下面是来自一个表格样式的截图:</p>
<p><a onfocus="undefined" href="http://icant.co.uk/csstablegallery/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-CSS Table Gallery" src="http://www.reiyee.cn/upload/table/c13.gif" /></a></p>
<h4>14. <a onfocus="undefined" href="http://ideamill.synaptrixgroup.com/jquery/tablefilter/tabletest.htm" target="_blank">jQuery Table Filter</a></h4>
<p>可以对数据进行各种不同的排序、过滤。</p>
<p><a onfocus="undefined" href="http://ideamill.synaptrixgroup.com/jquery/tablefilter/tabletest.htm" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-jQuery Table Filter" src="http://www.reiyee.cn/upload/table/c14.gif" /></a></p>
<p>15. <a onfocus="undefined" href="http://www.millstream.com.au/upload/code/tablekit/" target="_blank">Sortable/Resizable/Editable TableKit</a></p>
<p>TableKit基于Prototype框架，专门收集各种HTML表格，可以利用Ajax实时的进行表格栏目大小、排序等编辑。</p>
<p><a onfocus="undefined" href="http://www.millstream.com.au/upload/code/tablekit/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-sortable, resizable, editable" src="http://noupe.com/img/c22.gif" /></a></p>
<h4>16. <a onfocus="undefined" href="http://www.kryogenix.org/code/browser/sorttable/" target="_blank">Make all your tables sortable</a></h4>
<p><a onfocus="undefined" href="http://www.kryogenix.org/code/browser/sorttable/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-sortable table" src="http://noupe.com/img/c16.gif" /></a></p>
<h4>17. <a onfocus="undefined" href="http://www.alistapart.com/articles/zebratables/" target="_blank">Zebra Tables</a></h4>
<p>alistapart为我们提供了一个极好的例子，如何使用JavaScript和DOM的改变背景色风格，以突出显示单元格。</p>
<p><a onfocus="undefined" href="http://www.alistapart.com/articles/zebratables/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Zebra Tables" src="http://www.reiyee.cn/upload/table/c17.gif" /></a></p>
<h4>18. <a onfocus="undefined" href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting" target="_blank">Standardista Table Sorting</a></h4>
<p>Standardista Table Sorting 是一个Javascript模块，让您可以对HTML数据表的任何栏目进行排序。</p>
<p><a onfocus="undefined" href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Standardista Table Sorting" src="http://www.reiyee.cn/upload/table/c18.gif" /></a></p>
<h4>19. <a onfocus="undefined" href="http://extjs.com/playpen/ext-2.0/examples/grid/grid3.html" target="_blank">GridView3 Example</a></h4>
<p><a onfocus="undefined" href="http://extjs.com/playpen/ext-2.0/examples/grid/grid3.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-GridView3 Example" src="http://www.reiyee.cn/upload/table/c19.gif" /></a></p>
<h4>20. <a onfocus="undefined" href="http://joomlicious.com/mootable/" target="_blank">Mootable</a></h4>
<p><a onfocus="undefined" href="http://joomlicious.com/mootable/" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Mootable" src="http://www.reiyee.cn/upload/table/c20.gif" /></a></p>
<h4>21. <a onfocus="undefined" href="http://tool-man.org/examples/sorting.html" target="_blank">Drag &amp; Drop Sortable Lists with JavaScript and CSS</a></h4>
<p><a onfocus="undefined" href="http://tool-man.org/examples/sorting.html" target="_blank"><img alt="21个新奇漂亮的Ajax/CSS表格设计-Drag &amp; Drop Sortable Lists with JavaScript and CSS" src="http://www.reiyee.cn/upload/table/c21.gif" /></a></p>
<p>可能还会有一些你更想寻找的详细资料，下面是一些相关的资源链接:</p>
<ul style="width: 400px">
    <li><a onfocus="undefined" href="http://www.456bereastreet.com/archive/200410/bring_on_the_tables/" target="_blank">Bring on the Tables</a>
    <li><a onfocus="undefined" href="http://www.usability.com.au/resources/tables.cfm" target="_blank">Accessible Data Tables</a>
    <li><a onfocus="undefined" href="http://www.snook.ca/archives/html_and_css/designing_data_1/" target="_blank">Designing Data Tables</a>
    <li><a onfocus="undefined" href="http://www.brainjar.com/dhtml/tablesort/demo.html" target="_blank">Brainjar Table Sort</a>
    <li><a onfocus="undefined" href="http://neil.fraser.name/software/tablesort/" target="_blank">Table Sorter</a> </li>
</ul>
<p>如果你知道其它更强大的Ajax/CSS表格，欢迎在此留言。</p>
<img src ="http://www.blogjava.net/byterat/aggbug/177328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2008-01-23 17:46 <a href="http://www.blogjava.net/byterat/archive/2008/01/23/177328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个在线调色工具</title><link>http://www.blogjava.net/byterat/archive/2008/01/23/177327.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 23 Jan 2008 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2008/01/23/177327.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/177327.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2008/01/23/177327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/177327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/177327.html</trackback:ping><description><![CDATA[<a href="http://www.snook.ca/technical/colour_contrast/colour.html">一个在线调色工具</a>
<img src ="http://www.blogjava.net/byterat/aggbug/177327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2008-01-23 17:44 <a href="http://www.blogjava.net/byterat/archive/2008/01/23/177327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript对象基础</title><link>http://www.blogjava.net/byterat/archive/2008/01/02/172113.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 02 Jan 2008 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2008/01/02/172113.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/172113.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2008/01/02/172113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/172113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/172113.html</trackback:ping><description><![CDATA[<p><span style="font-family: Courier"><span style="font-size: 10pt">读 YUI ，EXT等源码的时候看JS天旋地转，那可不是51JS上那种挪挪位置就能理解的，此刻如果没有JavaScrip的基础，更是像没有星光的黑夜&#8230;&#8230;.</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">自以为觉得Js对象是很好理解的东东，然而真实践起来却一片糊涂。<br />
通过查阅经典书籍《Professional JavaScript For Web Developers》稍微有些理解了</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">JavaScript的基本类型<br />
原始类型如: Undefined Null Boolean Number String 等 用 typeof方法能辨别之<br />
引用类型如: Object Function Array Boolean Number String Date等，用insanceof方法辨别之</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">严格来讲，JavaScript没有对象(Object),但是由于和OO术语对应，所以也称之为对象。所以Array,Function，基本类型，引用类型，函数，以及函数的属性 等等这些都是对象。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">而对象分类，则可以分为内置对象(Built-in Object) 和宿主对象(host object)。<br />
内置对象如 Math,Data啊。<br />
宿主对象则如 BOM,DOM之类.</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">重新回顾了下这些基本概念之后，在做简单实践就有些理解了。<br />
因此对象的使用，创建方式不尽相同，最简单的归类如下:</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">1 基本创建方式</span></span></p>
<div class="hl-surround">
<div class="hl-main">
<pre><span style="font-family: Courier"><span style="font-size: 10pt">function Class() {
window.alert("Hello Class!");
}
var clz= new Class();</span></span></pre>
</div>
</div>
<p><span style="font-family: Courier"><span style="font-size: 10pt">2 访问对象成员</span></span></p>
<div class="hl-surround">
<div class="hl-main">
<pre><span style="font-family: Courier"><span style="font-size: 10pt">function Class(){
this.x = " this is x";
this.y = "this is y";
this.z = viewXY;
function viewXY(){
alert("x+","+y);
}
}
var clz= new Class();
clz.viewXY();</span></span></pre>
</div>
</div>
<p><span style="font-family: Courier"><span style="font-size: 10pt">3 对象继承</span></span></p>
<div class="hl-surround">
<div class="hl-main">
<pre><span style="font-family: Courier"><span style="font-size: 10pt">function Parent() {
this.type= "human!";
}
function Child(){
this.age = "26";
this.sex ="male";
this.say= myInfo;
function myInfo(msg){
alert(msg+this.type+ ","+this.age+","+this.sex);
}
}
Child.prototype = new Parent();
var clild = new Child();
clild.say("I'm ");</span></span></pre>
</div>
</div>
<p><span style="font-family: Courier"><span style="font-size: 10pt">4.重用原对象 (书上的例子太好了，搬来了)</span></span></p>
<div class="hl-surround">
<div class="hl-main">
<pre><span style="font-family: Courier"><span style="font-size: 10pt">Funcion.prototype.toString() = function(){
return "Function code hidden";
}
function sayHi(){
alert("hi");
}
alert(sayHi.toString());</span></span></pre>
</div>
</div>
<img src ="http://www.blogjava.net/byterat/aggbug/172113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2008-01-02 11:06 <a href="http://www.blogjava.net/byterat/archive/2008/01/02/172113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为 Ajax 安全性所提出的经验法则</title><link>http://www.blogjava.net/byterat/archive/2007/12/19/168809.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 19 Dec 2007 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2007/12/19/168809.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/168809.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2007/12/19/168809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/168809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/168809.html</trackback:ping><description><![CDATA[<span id="span1198055352859"><span style="font-size: 10pt"><span id="span1198055352859">为 Ajax 安全性所提出的经验法则：
<ol style="font-family: ">
    <li style="font-family: ">如果你使用身份验证, 确定你在请求页上检查!
    <li style="font-family: ">为 SQL 注入检查。
    <li style="font-family: ">为 JavaScript 注入检查。
    <li style="font-family: ">保留商务逻辑在服务器上!
    <li style="font-family: ">不要假设每个请求是真正的!
    <li style="font-family: ">确认检查数据!
    <li style="font-family: ">审查请求的数据而且确定它是正确的。</li>
</ol>
</span></span></span>
<img src ="http://www.blogjava.net/byterat/aggbug/168809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2007-12-19 17:10 <a href="http://www.blogjava.net/byterat/archive/2007/12/19/168809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>预加载与JavaScript的Image()对象</title><link>http://www.blogjava.net/byterat/archive/2007/12/19/168666.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 19 Dec 2007 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2007/12/19/168666.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/168666.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2007/12/19/168666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/168666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/168666.html</trackback:ping><description><![CDATA[<span style="font-family: Courier"><span style="font-size: 10pt">很多高分辨率的图像真的能够扮靓一个Web网站。但是它们也可能会降低网站的（响应）速度——图像都是文件，文件就要占用带宽，而带宽与等待时间直接相关。现在是你进行自我学习，了解如何利用一种叫做图像预加载的小技巧给网站提速的时候了。 </span></span>
<p><span style="font-family: Courier"><span style="font-size: 10pt">图像的预加载</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 浏览器通常的工作方式是：只有当要求加载图像的HTTP请求被发送的时候，图像才会被加载，而不论它是被动地通过&lt;img&gt;标记加载，还是主动地通过方法调用加载。所以，如果你有一段JavaScript，需要在鼠标悬停的时候切换图像，或者在超时之后自动地更换图像，那么你就可能会在从服务器取回图像的时候随时碰到等待，时间会从数秒钟到几分钟不等。当你以较慢的速度连接到Internet上的时候，或者被取回的图像非常巨大的时候，这种状况尤其显著，而这种数据延迟通常都会毁掉你所期望的效果。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有些浏览器会试图转嫁这一问题，比如把图像保存在本地缓冲区里，这样以后对它的调用就能够很快进行了，但是需要第一次调用图像的时候仍然会产生延迟。预加载是一项在需要图像之前就把它下载到缓冲区里的技术。通过这种方式，当真的需要图像的时候，它可以被从缓冲区里取出来，并立即显示出来。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">Image()对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 预加载图像最简单的方法用JavaScript将一个新的Image()对象实例化，并把你想要预加载的图像的URL传递给它。假设我们有一个叫做</span></span><a href="http://www.host01.com/Get/jsp/00040004/heavyimagefile.jpg"><span style="font-family: Courier"><span style="font-size: 10pt">http://www.host01.com/Get/jsp/00040004/heavyimagefile.jpg</span></span></a><span style="font-family: Courier"><span style="font-size: 10pt">的图像，我们希望，当用户把鼠标放在一个已经显示过的图像上的时，系统能够显示出这个图像。为了预加载这个图像，以便实现更快的响应时间，我们只用创建一个新的Image()对象，将其命名为heavyImage，并使用onLoad()事件处理程序把它同时加载到页面上。<br />
<br />
</span></span></p>
<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"><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #008080">1</span> <img id="Codehighlighter1_44_440_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_440_Open_Text.style.display='none'; Codehighlighter1_44_440_Closed_Image.style.display='inline'; Codehighlighter1_44_440_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /> <img id="Codehighlighter1_44_440_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_44_440_Closed_Text.style.display='none'; Codehighlighter1_44_440_Open_Image.style.display='inline'; Codehighlighter1_44_440_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /> <span style="color: #0000ff">&lt;</span> <span style="color: #800000">html</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">head</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">script&nbsp;</span> <span style="color: #ff0000">language&nbsp;</span> <span style="color: #0000ff">=&nbsp;"JavaScript"</span> <span style="color: #0000ff">&gt;</span> <span id="Codehighlighter1_44_440_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></span><span id="Codehighlighter1_44_440_Open_Text"><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #0000ff; background-color: #f5f5f5">function</span> <span style="color: #000000; background-color: #f5f5f5">&nbsp;preloader()&nbsp;</span> <span id="Codehighlighter1_65_167_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_65_167_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{heavyImage&nbsp;</span> <span style="color: #000000; background-color: #f5f5f5">=</span> <span style="color: #000000; background-color: #f5f5f5">&nbsp;</span> <span style="color: #0000ff; background-color: #f5f5f5">new</span> <span style="color: #000000; background-color: #f5f5f5">&nbsp;Image();&nbsp;heavyImage.src</span> <span style="color: #000000; background-color: #f5f5f5">=</span> <span style="color: #000000; background-color: #f5f5f5">"</span> <span style="color: #000000; background-color: #f5f5f5">http://www.host01.com/Get/jsp/00040004/heavyimagefile.jpg</span> <span style="color: #000000; background-color: #f5f5f5">"</span> <span style="color: #000000; background-color: #f5f5f5">;}</span> </span><span style="color: #0000ff">&lt;/</span> <span style="color: #800000">script</span> <span style="color: #0000ff">&gt;&lt;/</span> <span style="color: #800000">head</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">body&nbsp;</span> <span style="color: #ff0000">onLoad</span> <span style="color: #0000ff">="javascript:preloader()"</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">a&nbsp;</span> <span style="color: #ff0000">href</span> <span style="color: #0000ff">="#"</span> <span style="color: #ff0000">&nbsp;onMouseOver</span> <span style="color: #0000ff">="javascript:document.img01.src='http://www.host01.com/Get/jsp/00040004/heavyimagefile.jpg'"</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">img&nbsp;</span> <span style="color: #ff0000">name</span> <span style="color: #0000ff">="img01"</span> <span style="color: #ff0000">&nbsp;src</span> <span style="color: #0000ff">=http://www.host01.com/Get/jsp/00040004/"justanotherfile.jpg"</span> <span style="color: #0000ff">&gt;&lt;/</span> <span style="color: #800000">a</span> <span style="color: #0000ff">&gt;&lt;/</span> <span style="color: #800000">body</span> <span style="color: #0000ff">&gt;&lt;/</span> <span style="color: #800000">html</span> <span style="color: #0000ff">&gt;</span> </span></span><span style="color: #000000"><br />
</span><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #008080">2</span> <span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /> </span></span></span></span></div>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要注意的是，图像标记自身并不会处理onMouseOver()和onMouseOut()事件，这就是为什么上面例子里的&lt;img&gt;标记被放在一个&lt;a&gt;标记里，后者的确加入了对这些事件类型的支持。<br />
用数组加载多个图像</span></span></p>
<p><br />
<span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在实际操作中，你可能需要预加载一幅以上的图像；例如，在包含有多个图像翻滚（rollover）的菜单条里，或者如果你正在尝试创建平滑的动态效果。这并不困难；你所需要做的就是使用JavaScript的数组，就像下面例子里的一样：</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;</span></span></p>
<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"><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #008080">1</span> <img id="Codehighlighter1_51_316_Open_Image" onclick="this.style.display='none'; Codehighlighter1_51_316_Open_Text.style.display='none'; Codehighlighter1_51_316_Closed_Image.style.display='inline'; Codehighlighter1_51_316_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /> <img id="Codehighlighter1_51_316_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_51_316_Closed_Text.style.display='none'; Codehighlighter1_51_316_Open_Image.style.display='inline'; Codehighlighter1_51_316_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /> <span style="color: #000000">&lt;</span> <span style="color: #000000">script&nbsp;language</span> <span style="color: #000000">=</span> <span style="color: #000000">"</span> <span style="color: #000000">JavaScript</span> <span style="color: #000000">"</span> <span style="color: #000000">&gt;</span> <span style="color: #0000ff">function</span> <span style="color: #000000">&nbsp;preloader()&nbsp;</span> <span id="Codehighlighter1_51_316_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></span><span id="Codehighlighter1_51_316_Open_Text"><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #000000">{&nbsp;</span> <span style="color: #008000">//</span> <span style="color: #008000">&nbsp;counter&nbsp;var&nbsp;i&nbsp;=&nbsp;0;&nbsp;//&nbsp;create&nbsp;object&nbsp;imageObj&nbsp;=&nbsp;new&nbsp;Image();&nbsp;//&nbsp;set&nbsp;image&nbsp;list&nbsp;images&nbsp;=&nbsp;new&nbsp;Array();&nbsp;images[0]="image1.jpg"&nbsp;images[1]="image2.jpg"&nbsp;images[2]="image3.jpg"&nbsp;images[3]="image4.jpg"&nbsp;//&nbsp;start&nbsp;preloading&nbsp;for(i=0;&nbsp;i&lt;=3;&nbsp;i++)&nbsp;{&nbsp;imageObj.src=images[i];&nbsp;}</span> </span></span><span style="color: #008000"><br />
</span><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #008080">2</span> <span style="color: #008000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /> </span><span style="color: #000000">}</span> </span></span></span><span style="font-family: Courier"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;</span> <span style="color: #000000">&lt;/</span> <span style="color: #000000">script</span> <span style="color: #000000">&gt;</span> </span></span></div>
<p><br />
<span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在上面的例子里，你先定义变量i和叫做imageObj的Image()对象。然后定义一个叫做images[]的新数组，在这个数组里，每个数组元素都保存着需要预加载的图像来源。最后，创建一个for()循环，让它在数组里循环，并将它们中的每一个都指派给Image()对象，这样就能够把它预加载到缓冲区里。<br />
onLoad()事件处理程序<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就和JavaScript里的其它很多对象一样，Image()对象也带有多个事件处理程序。这其中最有用的毫无疑问的就是onLoad()处理程序了，它会在完成图像加载的时候被调用。这个处理程序可以与自定义的函数一起使用，以便在完成图像加载之后进行特定的任务。下面的例子通过在图像加载的时候显示&#8220;请等待（please wait）&#8221;提示信息来说明这个问题，然后在图像完成加载之后就向浏览器发送一个新的URL。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;</span></span></p>
<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"><span style="font-family: Courier"><span style="font-size: 10pt"><img id="Codehighlighter1_42_429_Open_Image" onclick="this.style.display='none'; Codehighlighter1_42_429_Open_Text.style.display='none'; Codehighlighter1_42_429_Closed_Image.style.display='inline'; Codehighlighter1_42_429_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /> <img id="Codehighlighter1_42_429_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_42_429_Closed_Text.style.display='none'; Codehighlighter1_42_429_Open_Image.style.display='inline'; Codehighlighter1_42_429_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /> <span style="color: #0000ff">&lt;</span> <span style="color: #800000">html</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">head</span> <span style="color: #0000ff">&gt;&lt;</span> <span style="color: #800000">script&nbsp;</span> <span style="color: #ff0000">language</span> <span style="color: #0000ff">="JavaScript"</span> <span style="color: #0000ff">&gt;</span> <span id="Codehighlighter1_42_429_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_42_429_Open_Text"><span style="color: #008000; background-color: #f5f5f5">//</span> <span style="color: #008000; background-color: #f5f5f5">&nbsp;create&nbsp;an&nbsp;image&nbsp;objectobjImage&nbsp;=&nbsp;new&nbsp;Image();&nbsp;//&nbsp;set&nbsp;what&nbsp;happens&nbsp;once&nbsp;the&nbsp;image&nbsp;has&nbsp;loaded&nbsp;objImage.onLoad=imagesLoaded();&nbsp;//&nbsp;preload&nbsp;the&nbsp;image&nbsp;fileobjImage.src='http://www.host01.com/Get/jsp/00040004/images/image1n.gif';//&nbsp;function&nbsp;invoked&nbsp;on&nbsp;image&nbsp;loadfunction&nbsp;imagesLoaded(){&nbsp;document.location.href='index2.html';}&lt;/script&gt;&lt;/head&gt;&lt;body&gt;Please&nbsp;wait,&nbsp;loading&nbsp;images<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&lt;/body&gt;&lt;/html&gt;</span> </span></span></span></div>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;</span></span></p>
<p><br />
<span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然，你还可以创建一个图像数组，对它进行循环，预加载每个图像，并在每个阶段对已加载图像的数量保持跟踪。一旦加载了所有的图像，事件处理程序就能够按照设定把浏览器带到下一个页面（或者进行其他的任务）。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">预加载与多状态菜单<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在，把你刚刚学到的理论付诸真正的实践怎么样？下面一部分内容就是我碰巧编写的一段代码——一个由多个按钮（图像链接）组成的菜单条——其中每个按钮都可能处于三种状态中的一种：正常（normal）、hover（悬停）和点击（click）。由于所有的按钮都有多个状态，所以就有必要使用图像预加载来确保菜单能够根据其切换到的状态进行快速的响应。列表A里的代码就说了这一点。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列表A里的HTML代码会建立一个由四个按钮组成的菜单条，每个按钮都有三种状态：正常、悬停和点击。其要求如下：</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但鼠标移动到处于正常状态的按钮上时，按钮会变为悬停状态。当鼠标移开的时候，按钮又会恢复到正常状态。当鼠标点击按钮的时候，按钮就会变为点击状态。它会一直保持这个状态，直到另外一个按钮被点击。如果有一个按钮被点击，那么其他的按钮就都不能处于点击状态。其他的按钮只能够处于悬停或者正常状态。一次只能有一个按钮可以被点击。一次只能有一个按钮处于悬停状态。 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一项任务是建立保存有菜单每个状态的图像的数组。与这些数组元素相对应的&lt;img&gt;元素也都在HTML文档的主体里被创建，并按顺序命名。要注意的是，对数组值的索引是从0开始的，而相应的&lt;img&gt;元素是从1开始命名的——这就需要在脚本后面的一段里进行某种计算上的调整。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PreloadImages()函数会负责把所有的图像都加载到缓冲区里，这样的话对鼠标移动的响应时间会被减到最小。一个for()循环被用在第一步里创建的图像里进行迭代，并预加载每一个图像。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResetAll()函数是把所有图像恢复都到它们正常状态的方便方法。这是有必要的，因为当菜单的项目被点击的时候，菜单里其他所有的项目都必须在被点击项目能够切换到点击状态之前恢复到正常状态。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetNormal()、setHover()和setClick()函数负责把特定图像（图像的编号被作为函数的自变量进行传递）的来源分别改为正常、悬停或者点击状态。由于被点击的图像必须一直保持点击状态，直到另外一个图像被点击（见第二项要求），所以它们暂时不会对鼠标移动作出反应；这样的话，如果按钮还不是处在点击状态，那么setNormal()和setHover()函数所包括的代码就只能用来改变按钮的状态。</span></span></p>
<p><span style="font-family: Courier"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上面所提到的预加载只是提高你JavaScript效果响应时间的多种方法之一。就在你的网站上使用上面列出的技巧，并根据你的要求在需要的地方更改它们吧。祝你好运！</span></span></p>
<img src ="http://www.blogjava.net/byterat/aggbug/168666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2007-12-19 10:40 <a href="http://www.blogjava.net/byterat/archive/2007/12/19/168666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript界面UI组件封装</title><link>http://www.blogjava.net/byterat/archive/2007/12/13/167561.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Thu, 13 Dec 2007 09:29:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2007/12/13/167561.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/167561.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2007/12/13/167561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/167561.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/167561.html</trackback:ping><description><![CDATA[这些东西都是Java Script大部分都是由老外写的，并且封装得很好，在运用上也很方便，而且也都兼容FF与OPERA，档案中少部分是由中国的高手写的。
<p>&nbsp;</p>
<p><font size="2">　　<strong>一、多样化摺叠菜单：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_01.rar"><font size="2">下载</font></a></p>
<p><font size="2">　　一个由老外写的折叠式垂直菜单，多样化，多功能，可自订，使用容易，支持FF。</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_01.jpg" border="0" /><br />
图1</font></div>
<p align="left"><font size="2">　　<strong>二、CSS圆角边框：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_02.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　以CSS为主要，用Java Script封装的相当完整，也是老外写的，支持多浏览器，可以自订样式，目前有十多种可以运用。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_02.jpg" border="0" /><br />
图2</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_03.jpg" border="0" /><br />
图3</font></p>
<p align="left"><font size="2">　　<strong>三、模拟视窗：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_03.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　用层模拟的视窗，是一个中国高手写的，Java Script封装的相当好，使用上也很容易</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_04.jpg" border="0" /><br />
图4</font></div>
<div align="left"><font size="2">　　</font></div>
<p align="left"><font size="2">　　<strong>四、支持FF的省略符：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_04.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　说到省略符，那非CSS莫属，有个老外用Java Script来实现，并且是批量处理的，重点是支持FF。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_05.jpg" border="0" /><br />
图5</font></p>
<p align="left"><font size="2">　　<strong>五、TAB选项卡：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_05.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　用Java Script模仿各种作业系统的选项卡，老外就是牛，不仅支援多样式的即时切换，同时也支援每个选项卡是否附带图示的切换选项，选项卡也可以上下切换。</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_06.jpg" border="0" /><br />
图6</font></div>
<div align="left"><font size="2">　　</font></div>
<p align="left"><font size="2">　　<strong>六、最佳化多样式Windows：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_06.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　用层模拟视窗的最佳代表作，这是我看过功能最多的模拟式窗，内附多达74项功能与样式，你完完全全可以把它当成是一个真正的视窗来应用，可以根据你的需求来应用，快丢掉你那认为好用的层视窗，这套封装非常完整的视窗绝对可以满足你的各种需求。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_07.jpg" border="0" /><br />
图7</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_08.jpg" border="0" /><br />
图8</font></p>
<p align="left"><font size="2">　　<strong>七、多样化的垂直菜单：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_07.rar"><font color="#3366cc" size="2">附件</font></a></p>
<p align="left"><font size="2">　　别具风格的方块式垂直折叠菜单，目前有8种风格可以运用，如果你已经厌烦WEB上平凡的菜单，这套在国外颇受欢迎的菜单肯定是你的最佳首选。</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_09.jpg" border="0" /><br />
图9</font></div>
<div align="left"><font size="2">　　</font></div>
<p align="left"><font size="2">　　<strong>八、多样化的连结提示效果：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_08.rar"><font color="#3366cc" size="2">下载</font></a><br />
<br />
<font size="2">　　这个连结提示样式允许你直接写入css与html，共有14项功能可以让你自订。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_10.jpg" border="0" /><br />
图10</font></p>
<p align="left"><font size="2">　　<strong>九、侧栏式折叠菜单：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_09.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　这是一个侧栏式的折叠菜单，它允许你设置它是否有过渡效果、侧栏菜单是否自动伸缩、菜单项切换是否允许动画过渡、是否轮替切换等多项设置，并且也有多种样式可以运用。</font></p>
<p align="left"><font size="2">　　这个脚本有个很好玩的东东，下载并且解压後，请进入samples的目录并打show.html看看效果，我不知道这效果容不容易实现，但是这效果很牛，菜单全自动运行的～</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_11.jpg" border="0" /><br />
图11</font></div>
<div align="left"><font size="2">　　</font></div>
<p align="left"><font size="2">　　<strong>十、图形滚动条：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_10.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　老外写的图形滚动条，有多种样式，在ie里头还支持滚轮滚动。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_12.jpg" border="0" /><br />
图12</font></p>
<p align="left"><font size="2">　　<strong>十一、图片倒影效果：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_11.rar"><font color="#3366cc" size="2">下载</font></a><br />
<font size="2">　　说到图片倒影，不外乎就是直接作成图片跟css滤镜来实现，但是这个是用Java Script实现的，值得借镜。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_13.jpg" border="0" /><br />
图13</font></p>
<p align="left"><font size="2">　　<strong>十二、代码自动高亮：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_12.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="left"><font size="2">　　虽说这不是什麽新东西，但总是会有人需要吧，而且想学正则表达的人，这肯定是最佳借镜的作品。</font></p>
<div align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_14.jpg" border="0" /><br />
图14</font></div>
<div align="center"><font size="2">　　</font></div>
<div align="left"><font size="2">　　</font>
<p><font size="2">　　<strong>十三、酷似flash效果的图片展示：</strong></font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_13.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p><font size="2">　　这个老外牛到有点变态，这图片展示效果已经跟FLASH没什麽两样，用Java Script写的耶。</font></p>
<p align="center"><font size="2"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_15.jpg" border="0" /><br />
图15</font></p>
<p><font size="2">　　十四、让ie6支援png图档：</font><a href="http://img2.pconline.com.cn/pconline/0707/03/1048356_14.rar"><font color="#3366cc" size="2">下载</font></a></p>
<p align="center"><font size="2"><font color="#3366cc"><img title="国内外 Java Script 经典封装" alt="国内外 Java Script 经典封装" src="http://news.newhua.com/Files/Remoteupfile/2007-10/23/1048356_16.jpg" border="0" /><br />
</font>图16</font></p>
<p><font size="2">　　这个问题之前被很多人讨论过，我就不多说什麽了，有需要下吧。</font></p>
</div>
<img src ="http://www.blogjava.net/byterat/aggbug/167561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2007-12-13 17:29 <a href="http://www.blogjava.net/byterat/archive/2007/12/13/167561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】JS的正则表达式</title><link>http://www.blogjava.net/byterat/archive/2006/12/20/89150.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 20 Dec 2006 13:49:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2006/12/20/89150.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/89150.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2006/12/20/89150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/89150.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/89150.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JS的正则表达式												//校验是否全由数字组成 								代码																																																																																						function isDigit(s)   									...&nbsp;&nbsp;<a href='http://www.blogjava.net/byterat/archive/2006/12/20/89150.html'>阅读全文</a><img src ="http://www.blogjava.net/byterat/aggbug/89150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2006-12-20 21:49 <a href="http://www.blogjava.net/byterat/archive/2006/12/20/89150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript正则表达式在线测试</title><link>http://www.blogjava.net/byterat/archive/2006/12/20/89148.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 20 Dec 2006 13:40:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2006/12/20/89148.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/89148.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2006/12/20/89148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/89148.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/89148.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<br />
										<br />
										<font class="big">正则表达式测试(V0.1)</font>
										<br />
										<br />
								</td>
						</tr>
						<tr>
								<td>
										<table cellspacing="0" cellpadding="0" width="600" border="0">
												<tbody>
														<tr>
																<td class="table" align="middle" width="12%">表达式：</td>
																<td class="column" width="88%" colspan="4">
																		<input class="regexp" size="81" name="regexp" />
																</td>
														</tr>
														<tr>
																<td class="table" align="middle">测试值：</td>
																<td class="column" colspan="4">
																		<textarea name="value" rows="15" cols="80">
																		</textarea>
																</td>
														</tr>
														<tr>
																<td class="table" align="middle">输出值：</td>
																<td class="column" colspan="4">
																		<textarea class="input" name="input" rows="12" readonly="" cols="80">
																		</textarea>
																</td>
														</tr>
														<tr>
																<td class="table" align="middle">标  识：</td>
																<td class="td" width="28%">
																		<input onfocus="this.blur()" type="checkbox" value="g" name="flag" />全局  <input onfocus="this.blur()" type="checkbox" value="i" name="flag" />忽略  <input onfocus="this.blur()" type="checkbox" value="m" name="flag" />多行</td>
																<td class="td" id="empty" width="28%"> </td>
																<td class="td" align="middle" width="10%">方  法：</td>
																<td class="column">
																		<select onchange="testMethod()" name="method">
																				<option value="exec" selected="">exec()方法</option>
																				<option value="test">test()方法</option>
																				<option value="match">match()方法</option>
																				<option value="replace">replace()方法</option>
																				<option value="search">search()方法</option>
																		</select>
																		<span id="swap" style="DISPLAY: none">  <input size="14" name="displace" /></span>
																</td>
														</tr>
														<tr>
																<td class="line" align="middle" colspan="5">
																		<input onfocus="this.blur()" onclick="testRegexp()" type="button" value="测试开始" />        <input onfocus="this.blur()" onclick="clearRegexp()" type="button" value="清空内容" /></td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
<img src ="http://www.blogjava.net/byterat/aggbug/89148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2006-12-20 21:40 <a href="http://www.blogjava.net/byterat/archive/2006/12/20/89148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】Javascript的一些正则表达式</title><link>http://www.blogjava.net/byterat/archive/2006/12/20/89144.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 20 Dec 2006 13:25:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2006/12/20/89144.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/89144.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2006/12/20/89144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/89144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/89144.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Courier New" color="#000000" size="2">正则表达式用于字符串处理，表单验证等场合，实用高效，但用到时总是不太把握，以致往往要上网查一番。我将一些常用的表达式收藏在这里，作备忘之用。本贴随时会更新。</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配中文字符的正则表达式： [\u4e00-\u9fa5]</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配双字节字符(包括汉字在内)：[^\x00-\xff]</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配空行的正则表达式：\n[\s| ]*\r</font>
		</p>
		<p>
				<font face="Courier New">
						<font color="#000000" size="2">匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/ </font>
				</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配首尾空格的正则表达式：(^\s*)|(\s*$)</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">String.prototype.trim = function()<br />{<br />    return this.replace(/(^\s*)|(\s*$)/g, "");<br />}</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">利用正则表达式分解和转换IP地址：</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的javascript程序：</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">function IP2V(ip)<br />{<br /> re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g  //匹配IP地址的正则表达式<br />if(re.test(ip))<br />{<br />return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1<br />}<br />else<br />{<br /> throw new Error("Not a valid IP address!")<br />}<br />}</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">var ip="10.100.20.168"<br />ip=ip.split(".")<br />alert("IP值是："+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">匹配网址URL的正则表达式：http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?</font>
		</p>
		<p>
				<font face="Courier New">
						<font size="2">
								<font color="#000000">
										<strike>利用正则表达式去除字串中重复的字符的算法程序</strike>：[注：此程序不正确，原因见本贴回复]</font>
						</font>
				</font>
		</p>
		<p>
				<font color="#000000">
						<font face="Courier New" size="2">var s="abacabefgeeii"<br />var s1=s.replace(/(.).*\1/g,"$1")<br />var re=new RegExp("["+s1+"]","g")<br />var s2=s.replace(re,"") <br />alert(s1+s2)  //结果为：abcefgi<br /></font>
						<br />
						<font face="Courier New" size="2">我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</font>
				</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">s="http://www.9499.net/page1.htm"<br />s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")<br />alert(s)</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">利用正则表达式限制网页表单里的文本框输入内容：</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"</font>
		</p>
		<p>
				<font face="Courier New">
						<font color="#000000" size="2">用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"</font>
				</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"</font>
		</p>
		<p>
				<font face="Courier New" color="#000000" size="2">用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"</font>
		</p>
<img src ="http://www.blogjava.net/byterat/aggbug/89144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2006-12-20 21:25 <a href="http://www.blogjava.net/byterat/archive/2006/12/20/89144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】JavaScript--正则表达式</title><link>http://www.blogjava.net/byterat/archive/2006/12/20/89143.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Wed, 20 Dec 2006 13:23:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2006/12/20/89143.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/89143.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2006/12/20/89143.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/89143.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/89143.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Courier New" size="2">JavaScript--正则表达式</font>
		</p>
		<p>
				<font face="Courier New" size="2">　　正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹</font>
		</p>
		<p>
				<font face="Courier New" size="2">配或代替一个串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。 </font>
		</p>
		<p>
				<font face="Courier New" size="2">正则表达式构造函数： new RegExp("pattern"[,"flags"]); <br />参数说明： <br />pattern -- 一个正则表达式文本 <br />flags -- 如果存在，将是以下值： <br />g: 全局匹配 <br />i: 忽略大小写 <br />gi: 以上组合 </font>
		</p>
		<p>
				<font face="Courier New" size="2">在构造函数中，一些特殊字符需要进行转意(在特殊字符前加"\")。正则表达式中的特殊字符： <br />字符  含意  <br />\ 转意，即通常在"\"后面的字符不按原来意义解释，如/b/匹配字符"b"，当b前面加了反斜杆后/\b/，转意为 </font>
		</p>
		<p>
				<font face="Courier New" size="2">匹配一个单词的边界。 <br />-或- <br />对正则表达式功能字符的还原，如"*"匹配它前面元字符0次或多次，/a*/将匹配a,aa,aaa，加了"\"后，/a\*/ </font>
		</p>
		<p>
				<font face="Courier New" size="2">将只匹配"a*"。  <br />^  匹配一个输入或一行的开头，/^a/匹配"an A"，而不匹配"An a"  <br />$  匹配一个输入或一行的结尾，/a$/匹配"An a"，而不匹配"an A"  <br />*  匹配前面元字符0次或多次，/ba*/将匹配b,ba,baa,baaa  <br />+  匹配前面元字符1次或多次，/ba*/将匹配ba,baa,baaa  <br />?  匹配前面元字符0次或1次，/ba*/将匹配b,ba  <br />(x)  匹配x保存x在名为$1...$9的变量中  <br />x|y  匹配x或y  <br />{n}  精确匹配n次  <br />{n,}  匹配n次以上  <br />{n,m}  匹配n-m次  <br />[xyz]  字符集(character set)，匹配这个集合中的任一一个字符(或元字符)  <br />[^xyz]  不匹配这个集合中的任何一个字符  <br />[\b]  匹配一个退格符 <br />\b  匹配一个单词的边界  <br />\B  匹配一个单词的非边界 <br />\cX  这儿，X是一个控制符，/\cM/匹配Ctrl-M  <br />\d  匹配一个字数字符，/\d/ = /[0-9]/  <br />\D  匹配一个非字数字符，/\D/ = /[^0-9]/  <br />\n  匹配一个换行符  <br />\r  匹配一个回车符  <br />\s  匹配一个空白字符，包括\n,\r,\f,\t,\v等  <br />\S  匹配一个非空白字符，等于/[^\n\f\r\t\v]/  <br />\t  匹配一个制表符  <br />\v  匹配一个重直制表符  <br />\w  匹配一个可以组成单词的字符(alphanumeric，这是我的意译，含数字)，包括下划线，如[\w]匹配"$5.98" 中的5，等于[a-zA-Z0-9_]  <br />\W  匹配一个不可以组成单词的字符，如[\W]匹配"$5.98"中的$，等于[^a-zA-Z0-9]。 </font>
		</p>
		<p>
				<br />
				<font face="Courier New" size="2">说了这么多了，我们来看一些正则表达式的实际应用的例子： <br />HTML代码的屏蔽 <br /> function mask_HTMLCode(strInput) { <br />   var myReg = /&lt;(\w+)&gt;/; <br />   return strInput.replace(myReg, "&amp;lt;$1&amp;gt;"); <br /> } <br />E-mail地址验证: <br /> function test_email(strEmail) { <br />  var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/; <br />  if(myReg.test(strEmail)) return true; <br />  return false; <br /> } </font>
		</p>
		<p>
				<font face="Courier New" size="2">
				</font> </p>
		<p>
				<font face="Courier New" size="2">正则表达式对象的属性及方法： <br />　　预定义的正则表达式拥有有以下静态属性：input, multiline, lastMatch, lastParen, leftContext, </font>
		</p>
		<p>
				<font face="Courier New" size="2">rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据</font>
		</p>
		<p>
				<font face="Courier New" size="2">不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字，并且，这两个名字指向同一个值。(</font>
				<font face="Courier New" size="2">JavaScript模拟perl的正则表达式)</font>
		</p>
		<p>
				<font face="Courier New" size="2">正则表达式对象的属性： <br />属性 含义 <br />$1...$9 如果它(们)存在，是匹配到的子串  <br />$_ 参见input  <br />$* 参见multiline  <br />$&amp; 参见lastMatch  <br />$+ 参见lastParen  <br />$` 参见leftContext  <br />$''　　　　　　　　　 参见rightContext  <br />constructor　　　  创建一个对象的一个特殊的函数原型  <br />global　　　　　　  是否在整个串中匹配(bool型)  <br />ignoreCase　　　　 匹配时是否忽略大小写(bool型)  <br />input　　　　　　　 被匹配的串  <br />lastIndex　　　　  最后一次匹配的索引  <br />lastParen　　　　  最后一个括号括起来的子串  <br />leftContext　　　  最近一次匹配以左的子串  <br />multiline　　　　  是否进行多行匹配(bool型)  <br />prototype　　　　  允许附加属性给对象  <br />rightContext　　　 最近一次匹配以右的子串  <br />source　　　　　　  正则表达式模式  <br />lastIndex　　　　  最后一次匹配的索引  </font>
		</p>
		<p>
				<font face="Courier New" size="2">正则表达式对象的方法： <br />方法 含义 <br />compile　　　　　  正则表达式比较  <br />exec　　　　　　　 执行查找  <br />test　　　　　　　 进行匹配  <br />toSource　　　　　 返回特定对象的定义(literal </font>
		</p>
		<p>
				<font face="Courier New" size="2">representing)，其值可用来创建一个新的对象。重载Object.toSource方法得到的。  <br />toString　　　　　 返回特定对象的串。重载Object.toString方法得到的。  <br />valueOf　　　　　  返回特定对象的原始值。重载Object.valueOf方法得到 <br />  </font>
		</p>
		<p>
				<font face="Courier New" size="2">例子： <br />&lt;script language = "JavaScript"&gt; <br />var myReg = /(w+)s(w+)/; <br />var str  = "John Smith"; <br />var newstr = str.replace(myReg, "$2, $1"); <br />document.write(newstr); <br />&lt;/script&gt; <br />将输出"Smith, John" </font>
		</p>
<img src ="http://www.blogjava.net/byterat/aggbug/89143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2006-12-20 21:23 <a href="http://www.blogjava.net/byterat/archive/2006/12/20/89143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DHTML: 在已定义事件之前或之后执行你自己的代码!</title><link>http://www.blogjava.net/byterat/archive/2006/10/20/76291.html</link><dc:creator>比特鼠</dc:creator><author>比特鼠</author><pubDate>Fri, 20 Oct 2006 00:51:00 GMT</pubDate><guid>http://www.blogjava.net/byterat/archive/2006/10/20/76291.html</guid><wfw:comment>http://www.blogjava.net/byterat/comments/76291.html</wfw:comment><comments>http://www.blogjava.net/byterat/archive/2006/10/20/76291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/byterat/comments/commentRss/76291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/byterat/services/trackbacks/76291.html</trackback:ping><description><![CDATA[
		<p>
				<font style="BACKGROUND-COLOR: #fffeff">
						<font face="Courier New" size="2">常常会遇到这样的情况, 即你自己写的一段Javascript代码需要在某DHTML事件中执行, 可这个DHTML事件已经被别的Javascript代码占用了!<br /><br />怎么办呢? <br /><br />参照以下Javascript代码片段:<br /><br /></font>
				</font>
		</p>
		<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">
				<font size="2">
						<font face="Courier New">
								<span style="COLOR: #008080">1</span>
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								<span style="COLOR: #0000ff">var</span>
								<span style="COLOR: #000000"> e_onLoad </span>
								<span style="COLOR: #000000">=</span>
						</font>
				</font>
				<font size="2">
						<font face="Courier New">
								<span style="COLOR: #000000"> window.onload;<br /></span>
								<span style="COLOR: #008080">2</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_56_110_Open_Image" onclick="this.style.display='none'; Codehighlighter1_56_110_Open_Text.style.display='none'; Codehighlighter1_56_110_Closed_Image.style.display='inline'; Codehighlighter1_56_110_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
										<img id="Codehighlighter1_56_110_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_56_110_Closed_Text.style.display='none'; Codehighlighter1_56_110_Open_Image.style.display='inline'; Codehighlighter1_56_110_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />window.onload </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">function</span>
								<span style="COLOR: #000000">()</span>
								<span id="Codehighlighter1_56_110_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" />
								</span>
						</font>
				</font>
				<span id="Codehighlighter1_56_110_Open_Text">
						<font size="2">
								<font face="Courier New">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080">3</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">your code</span>
								</font>
						</font>
						<span style="COLOR: #008000">
								<br />
						</span>
						<font size="2">
								<font face="Courier New">
										<span style="COLOR: #008080">4</span>
										<span style="COLOR: #008000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">    </span>
										<span style="COLOR: #0000ff">if</span>
								</font>
						</font>
						<font size="2">
								<font face="Courier New">
										<span style="COLOR: #000000">(e_onLoad) e_onLoad();<br /></span>
										<span style="COLOR: #008080">5</span>
										<span style="COLOR: #000000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">your code</span>
								</font>
						</font>
						<span style="COLOR: #008000">
								<br />
						</span>
						<font size="2">
								<font face="Courier New">
										<span style="COLOR: #008080">6</span>
										<span style="COLOR: #008000">
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />
										</span>
										<span style="COLOR: #000000">}</span>
								</font>
						</font>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<font size="2">
						<font face="Courier New">
								<span style="COLOR: #008080">7</span>
								<span style="COLOR: #000000">
										<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
								</span>
						</font>
				</font>
		</div>
		<p>
				<font face="Courier New" size="2">以上代码即可根据需要在别人的onLoad()事件之前或之后执行自己的代码!<br /></font>
		</p>
<img src ="http://www.blogjava.net/byterat/aggbug/76291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/byterat/" target="_blank">比特鼠</a> 2006-10-20 08:51 <a href="http://www.blogjava.net/byterat/archive/2006/10/20/76291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>