﻿<?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>C++博客-PeakGao-随笔分类-Javascript</title><link>http://www.cppblog.com/PeakGao/category/3829.html</link><description>别读成痞子高</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 04:33:53 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 04:33:53 GMT</pubDate><ttl>60</ttl><item><title>常用正则表达式 </title><link>http://www.cppblog.com/PeakGao/archive/2007/04/22/22590.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sun, 22 Apr 2007 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/22/22590.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/22590.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/22/22590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/22590.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/22590.html</trackback:ping><description><![CDATA[<p><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^\d+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">非负整数（正整数&nbsp;+&nbsp;0）&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[0-9]*[1-9][0-9]*$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">正整数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^((-\d+)|(0+))$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">非正整数（负整数&nbsp;+&nbsp;0）&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^-[0-9]*[1-9][0-9]*$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">负整数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^-?\d+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">整数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^\d+(\.\d+)?$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">非负浮点数（正浮点数&nbsp;+&nbsp;0）&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">正浮点数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^((-\d+(\.\d+)?)|(0+(\.0+)?))$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">非正浮点数（负浮点数&nbsp;+&nbsp;0）&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">负浮点数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^(-?\d+)(\.\d+)?$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">浮点数&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[A-Za-z]+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由26个英文字母组成的字符串&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[A-Z]+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由26个英文字母的大写组成的字符串&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[a-z]+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由26个英文字母的小写组成的字符串&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[A-Za-z0-9]+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由数字和26个英文字母组成的字符串&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^\w+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由数字、26个英文字母或者下划线组成的字符串&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">email地址&nbsp;</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">　　</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">url</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" target=_blank></a><a href="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" target=_blank></a></span><span style="COLOR: #000000">/^</span><span style="COLOR: #000000">(d</span><span id=Codehighlighter1_768_770_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_768_770_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">d</span><span id=Codehighlighter1_774_776_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_774_776_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">((</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]</span><span id=Codehighlighter1_788_790_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_788_790_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">|</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]))</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(([</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]</span><span id=Codehighlighter1_817_819_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_817_819_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">|</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]))$</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;年-月-日</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" target=_blank></a><a href="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" target=_blank></a></span><span style="COLOR: #000000">/^</span><span style="COLOR: #000000">((</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]</span><span id=Codehighlighter1_858_860_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_858_860_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">|</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]))</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(([</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]([</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]</span><span id=Codehighlighter1_888_890_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_888_890_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">|</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]))</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(d</span><span id=Codehighlighter1_908_910_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_908_910_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">d</span><span id=Codehighlighter1_914_916_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"><a href="http://www.cnblogs.com/Images/dot.gif" target=_blank></a></span><span id=Codehighlighter1_914_916_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">)$</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;月/日/年</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Emil</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">电话号码</span><span style="COLOR: #008000"><br><a href="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" target=_blank></a></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">IP地址</span><br></p>
<p>
<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br>匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br>匹配空行的正则表达式：\n[\s| ]*\r<br>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/<br>匹配首尾空格的正则表达式：(^\s*)|(\s*$)<br>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br>匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$<br>匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br>匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<br>匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$<br></p>
<p><u>下表是元字符及其在正则表达式上下文中的行为的一个完整列表： <br></u><br><strong>\</strong> 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。<br><br><strong>^</strong> 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之后的位置。 <br><br><strong>$</strong> 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之前的位置。 <br><br><strong>*</strong> 匹配前面的子表达式零次或多次。 <br><br><strong>+</strong> 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 <br><br><strong>?</strong> 匹配前面的子表达式零次或一次。? 等价于 {0,1}。 <br><br><strong>{n}</strong> n 是一个非负整数，匹配确定的n 次。<br><br><strong>{n,}</strong> n 是一个非负整数，至少匹配n 次。 <br><br><strong>{n,m}</strong> m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。<br><br><strong>?</strong> 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 <br><br><strong>.</strong> 匹配除 "\n" 之外的任何单个字符。要匹配包括 &#8217;\n&#8217; 在内的任何字符，请使用象 &#8217;[.\n]&#8217; 的模式。 <br><strong>(pattern)</strong> 匹配pattern 并获取这一匹配。 <br><br><strong>(?:pattern)</strong> 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。 <br><br><strong>(?=pattern)</strong> 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。 <br><br><strong>(?!pattern)</strong> 负向预查，与<strong>(?=pattern)</strong>作用相反 <br><br><strong>x|y</strong> 匹配 x 或 y。 <br><br><strong>[xyz]</strong> 字符集合。 <br><br><strong>[^xyz]</strong> 负值字符集合。 <br><br><strong>[a-z]</strong> 字符范围，匹配指定范围内的任意字符。 <br><br><strong>[^a-z]</strong> 负值字符范围，匹配任何不在指定范围内的任意字符。 <br><br><strong>\b</strong> 匹配一个单词边界，也就是指单词和空格间的位置。<br><br><strong>\B</strong> 匹配非单词边界。 <br><br><strong>\cx</strong> 匹配由x指明的控制字符。 <br><br><strong>\d</strong> 匹配一个数字字符。等价于 [0-9]。 <br><br><strong>\D</strong> 匹配一个非数字字符。等价于 [^0-9]。 <br><br><strong>\f</strong> 匹配一个换页符。等价于 \x0c 和 \cL。 <br><br><strong>\n</strong> 匹配一个换行符。等价于 \x0a 和 \cJ。 <br><br><strong>\r</strong> 匹配一个回车符。等价于 \x0d 和 \cM。 <br><br><strong>\s</strong> 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 <br><br><strong>\S</strong> 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 <br><br><strong>\t</strong> 匹配一个制表符。等价于 \x09 和 \cI。 <br><br><strong>\v</strong> 匹配一个垂直制表符。等价于 \x0b 和 \cK。 <br><br><strong>\w</strong> 匹配包括下划线的任何单词字符。等价于&#8217;[A-Za-z0-9_]&#8217;。 <br><br><strong>\W</strong> 匹配任何非单词字符。等价于 &#8217;[^A-Za-z0-9_]&#8217;。 <br><br><strong>\xn</strong> 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。<br><br><strong>\num</strong> 匹配 num，其中num是一个正整数。对所获取的匹配的引用。 <br><br><strong>\n</strong> 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。 <br><br><strong>\nm</strong> 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。 <br><br><strong>\nml</strong> 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。 <br><br><strong>\un</strong> 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。 <br></p>
<p>匹配中文字符的正则表达式： [u4e00-u9fa5]</p>
<p>匹配双字节字符(包括汉字在内)：[^x00-xff]</p>
<p>应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
<p>String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}</p>
<p>匹配空行的正则表达式：n[s| ]*r</p>
<p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;/1&gt;|&lt;(.*) /&gt;/ </p>
<p>匹配首尾空格的正则表达式：(^s*)|(s*$)</p>
<p>应用：javascript中没有像vbscript那样的trim函数，我们就可以利用这个表达式来实现，如下：</p>
<p>String.prototype.trim = function()<br>{<br>return this.replace(/(^s*)|(s*$)/g, "");<br>}</p>
<p>利用正则表达式分解和转换IP地址：</p>
<p>下面是利用正则表达式匹配IP地址，并将IP地址转换成对应数值的Javascript程序：</p>
<p>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>}</p>
<p>不过上面的程序如果不用正则表达式，而直接用split函数来分解可能更简单，程序如下：</p>
<p>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))</p>
<p>匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p>
<p>匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&amp;=]*)?</p>
<p>利用正则表达式去除字串中重复的字符的算法程序：</p>
<p>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</p>
<p>我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法，最终没有找到，这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符，再以重复的字符建立第二个表达式，取到不重复的字符，两者串连。这个方法对于字符顺序有要求的字符串可能不适用。</p>
<p>得用正则表达式从URL地址中提取文件名的javascript程序，如下结果为page1</p>
<p>s="http://www.9499.net/page1.htm"<br>s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")<br>alert(s)</p>
<p>利用正则表达式限制网页表单里的文本框输入内容：</p>
<p>用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"</p>
<p>用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"</p>
<p>用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"</p>
<p>用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"</p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/22590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-22 15:39 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/22/22590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记：学习Javascript的Math对象</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/07/21445.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sat, 07 Apr 2007 04:02:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/07/21445.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21445.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/07/21445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21445.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21445.html</trackback:ping><description><![CDATA[废话少说，看结果：<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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Math.ceil(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.ceil(</span><span style="COLOR: #000000">0.1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.ceil(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0.9</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.floor(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.floor(</span><span style="COLOR: #000000">0.1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.floor(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0.9</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.min(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.max(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.pow(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.125</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.random()</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.5470700571418643</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">4.4999</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">4.5001</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">4.4999</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Math.round(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">4.5001</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">5</span></div>
<img src ="http://www.cppblog.com/PeakGao/aggbug/21445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-07 12:02 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/07/21445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记四：学用mootools的String对象</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/05/21338.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Thu, 05 Apr 2007 09:55:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/05/21338.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21338.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/05/21338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21338.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21338.html</trackback:ping><description><![CDATA[<p>今天在学习mootools的String类的时候，顺便写了这个文档，给大家分享一下。<br><br>方法：test<br>描述：用一个正则表达式检查字符串对象</p>
<p>参数：<br>regex 一个字符串或者你想要与该字符串匹配的正则表达式对象<br>params 可选，如果第一个参数是一个字符串，这里就是传给正则表达式的任意参数（'g'无效）</p>
<p>示例：<br>"I like cookies".test("cookie"); // 返回true<br>"I like cookies".test("COOKIE", "i") // 忽略大小写, 返回true<br>"I like cookies".test("cake"); // 返回false</p>
<p>方法：toInt<br>描述：解析一个字符串为整数<br>返回值：如果传入的字符串是以数字（含正负号）开头，那么返回相应的整数，否则返回NoN<br>示例：<br>var value = "10px".toInt(); // value的值是10<br>"+10.5abc".toInt();//返回10<br>"-10abc".toInt();//返回-10<br>"a-10b".toInt();//返回NaN<br>$type("a-10b".toInt());//返回 number</p>
<p>方法：camelCase<br>描述：去掉一个带连字符的字符串中的连字符，并将连字符后面的字母变成大写<br>返回值：转换后的新字符串实例<br>示例：<br>"I-like-cookies".camelCase(); //"ILikeCookies"</p>
<p><br>方法：camelCase<br>描述：去掉一个带连字符的字符串中的连字符，并将连字符后面的字母变成大写<br>返回值：转换后的新字符串实例<br>示例：<br>"I-like-cookies".camelCase(); //"ILikeCookies"</p>
<p><br>方法：hyphenate<br>描述：将一个字符串加连字符，依据大写字母来分割，但是如果两个大写字母写一起，将忽略第二个（放字符串开头除外），中文忽略<br>返回值：加了连字符后的新字符串实例<br>示例：<br>"ILikeCookies".hyphenate(); //"I-like-cookies"<br>"IILikeCoBBBAki我es".hyphenate();//"I-iLike-co-bB-bAki我es"<br></p>
<p>说明：上面两个函数的应用主要表现在对CSS字符串(大部分都含连字符)的支持<br><br>方法：capitalize<br>描述：将字符串中的每个单词转换为大写，中文忽略<br>返回值：转换后的新字符串实例<br>示例：<br>"i like cookies, 你呢？".capitalize(); //"I Like Cookies, 你呢？"</p>
<p><br>方法：trim<br>描述：裁减掉一个字符串的前后空格（含空白字符和一些显示不出来的特殊字符，如\t）<br>返回值：裁减后的新字符串实例<br>示例：<br>"\r\n\t&nbsp;&nbsp;&nbsp; i like cookies\t&nbsp; ".trim();//返回"i like cookies"</p>
<p><br>方法：clean<br>描述：在trim的基础上，对字符串中2个以上的空格转换成一个空格（说白了就是删除多余的空格）<br>返回值：清除后的新字符串实例<br>示例：<br>" i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; like&nbsp; \t\r\n&nbsp;&nbsp; cookies, hehe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n\n".clean();//返回"i like cookies, hehe"</p>
<p><br>方法：rgbToHex<br>描述：转换RGB值为十六进制值，RGB字符串必须是这种形式的格式："rgb(255,255,255)"或"rgba(255,255,255,1)"<br>参数：<br>array 布尔值，默认为false，如果你想用这种形式的数组['FF','33','00']输出，而不是"#FF3300"，那么你可以设置此参数为true<br>返回值：十六进制的字符串或者数组，如果输出被设置为字符串，同时rgba的第四个值为0，那么将返回"transparent"<br>示例：<br>"rgb(17,34,51)".rgbToHex(); //"#112233"<br>"rgba(17,34,51,0)".rgbToHex(); //"transparent"<br>"rgb(17,34,51)".rgbToHex(true); //['11','22','33']</p>
<p>&nbsp;</p>
<p>方法：hexToRgb<br>描述：转换十六进制颜色值为RGB值，可以不写"#"号，颜色支持短颜色型"#ABC"<br>参数：<br>array 布尔值，默认为false，如果你想输出数组形式[255,255,255]而不是"rgb(255,255,255)"形式，该参数设置为true<br>返回值：rgb字符串或数组<br>示例：<br>"#112233".hexToRgb(); //"rgb(17,34,51)"<br>"112233".hexToRgb(); //"rgb(17,34,51)"<br>"123".hexToRgb(); //"rgb(17,34,51)"<br>"#112233".hexToRgb(true); //[17,34,51]<br>"112233".hexToRgb(true); //[17,34,51]<br>"123".hexToRgb(true); //[17,34,51]<br>&nbsp;</p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/21338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-05 17:55 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/05/21338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记三：学用mootools的Event对象</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/05/21325.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Thu, 05 Apr 2007 08:26:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/05/21325.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21325.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/05/21325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21325.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21325.html</trackback:ping><description><![CDATA[mootools的Event类很简单，方法少，属性比较齐全：<br><br>方法：<br>stop：停止事件分发<br><a id=Event.stopPropagation htmlElement="true"></a>stopPropagation：停止事件继续向上传播<br>preventDefault：阻止默认行为的处理<br>bindWithEvent：绑定元素的事件<br><br>属性：<br>
<table class=CDescriptionList cellSpacing=0 cellPadding=0 border=0>
    <tbody>
        <tr>
            <td class=CDLEntry>shift</td>
            <td class=CDLDescription>是否按下了SHIFT键</td>
        </tr>
        <tr>
            <td class=CDLEntry>control</td>
            <td class=CDLDescription>是否按下了CTRL键</td>
        </tr>
        <tr>
            <td class=CDLEntry>alt</td>
            <td class=CDLDescription>是否按下了ALT键</td>
        </tr>
        <tr>
            <td class=CDLEntry>meta</td>
            <td class=CDLDescription>是否按下了META键(晕一个，META是什么键？)</td>
        </tr>
        <tr>
            <td class=CDLEntry>code</td>
            <td class=CDLDescription>按下键的编码keycode</td>
        </tr>
        <tr>
            <td class=CDLEntry>page.x</td>
            <td class=CDLDescription>鼠标相对于整个窗口的 x 偏移位置</td>
        </tr>
        <tr>
            <td class=CDLEntry>page.y</td>
            <td class=CDLDescription>鼠标相对于整个窗口的 y 偏移位置</td>
        </tr>
        <tr>
            <td class=CDLEntry>client.x</td>
            <td class=CDLDescription>鼠标相对于当前视口的 x 偏移位置</td>
        </tr>
        <tr>
            <td class=CDLEntry>client.y</td>
            <td class=CDLDescription>鼠标相对于当前视口的&nbsp;y 偏移位置</td>
        </tr>
        <tr>
            <td class=CDLEntry>key</td>
            <td class=CDLDescription>这个变量记录按下的键盘的小写字母，如'a','w'，也记录特殊的按键，如&#8216;enter&#8217;, &#8216;up&#8217;, &#8216;down&#8217;, &#8216;left&#8217;, &#8216; right&#8217;, &#8216;space&#8217;, &#8216;backspace&#8217;, &#8216;delete&#8217;, &#8216;esc&#8217;.&nbsp; 这些特殊键的描述很方便</td>
        </tr>
        <tr>
            <td class=CDLEntry>target</td>
            <td class=CDLDescription>事件的目标，如href</td>
        </tr>
        <tr>
            <td class=CDLEntry>relatedTarget</td>
            <td class=CDLDescription>事件的关联目标</td>
        </tr>
    </tbody>
</table>
<br><br>代码示例如下：testEvent.html<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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">测试Event</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">meta&nbsp;</span><span style="COLOR: #ff0000">http-equiv</span><span style="COLOR: #0000ff">="content-type"</span><span style="COLOR: #ff0000">&nbsp;content</span><span style="COLOR: #0000ff">="text/html;&nbsp;charset=gb2312"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">="./js/mootools.v1.00.js?v=1"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">textarea&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=content&nbsp;</span><span style="COLOR: #ff0000">cols</span><span style="COLOR: #0000ff">=80&nbsp;</span><span style="COLOR: #ff0000">rows</span><span style="COLOR: #0000ff">=20</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">textarea</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=id_div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=id_a&nbsp;</span><span style="COLOR: #ff0000">href</span><span style="COLOR: #0000ff">='http://www.baidu.com'&nbsp;</span><span style="COLOR: #ff0000">target</span><span style="COLOR: #0000ff">='_blank'</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">测试事件</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_382_1213_Open_Image onclick="this.style.display='none'; Codehighlighter1_382_1213_Open_Text.style.display='none'; Codehighlighter1_382_1213_Closed_Image.style.display='inline'; Codehighlighter1_382_1213_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_382_1213_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_382_1213_Closed_Text.style.display='none'; Codehighlighter1_382_1213_Open_Image.style.display='inline'; Codehighlighter1_382_1213_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">language</span><span style="COLOR: #0000ff">="javascript"</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #0000ff">&gt;</span><span id=Codehighlighter1_382_1213_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_382_1213_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;flags&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_417_455_Open_Image onclick="this.style.display='none'; Codehighlighter1_417_455_Open_Text.style.display='none'; Codehighlighter1_417_455_Closed_Image.style.display='inline'; Codehighlighter1_417_455_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_417_455_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_417_455_Closed_Text.style.display='none'; Codehighlighter1_417_455_Open_Image.style.display='inline'; Codehighlighter1_417_455_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;log(msg)</span><span id=Codehighlighter1_417_455_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_417_455_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;$('content').value&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">+=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;msg&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">+</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;'\n';<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img id=Codehighlighter1_473_499_Open_Image onclick="this.style.display='none'; Codehighlighter1_473_499_Open_Text.style.display='none'; Codehighlighter1_473_499_Closed_Image.style.display='inline'; Codehighlighter1_473_499_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_473_499_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_473_499_Closed_Text.style.display='none'; Codehighlighter1_473_499_Open_Image.style.display='inline'; Codehighlighter1_473_499_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;clear()</span><span id=Codehighlighter1_473_499_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_473_499_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;$('content').value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'';<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">&nbsp;绑定div的单击事件</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br><img id=Codehighlighter1_551_629_Open_Image onclick="this.style.display='none'; Codehighlighter1_551_629_Open_Text.style.display='none'; Codehighlighter1_551_629_Closed_Image.style.display='inline'; Codehighlighter1_551_629_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_551_629_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_551_629_Closed_Text.style.display='none'; Codehighlighter1_551_629_Open_Image.style.display='inline'; Codehighlighter1_551_629_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">$('id_div').onclick</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(event)</span><span id=Codehighlighter1_551_629_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_551_629_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;event&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;Event(event);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;log('</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">div</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;-</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">onclick,&nbsp;target</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">+</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">event.target);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_657_1119_Open_Image onclick="this.style.display='none'; Codehighlighter1_657_1119_Open_Text.style.display='none'; Codehighlighter1_657_1119_Closed_Image.style.display='inline'; Codehighlighter1_657_1119_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_657_1119_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_657_1119_Closed_Text.style.display='none'; Codehighlighter1_657_1119_Open_Image.style.display='inline'; Codehighlighter1_657_1119_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;a_onclick(event)</span><span id=Codehighlighter1_657_1119_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_657_1119_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;clear();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;event&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;Event(event);<br><img id=Codehighlighter1_715_764_Open_Image onclick="this.style.display='none'; Codehighlighter1_715_764_Open_Text.style.display='none'; Codehighlighter1_715_764_Closed_Image.style.display='inline'; Codehighlighter1_715_764_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_715_764_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_715_764_Closed_Text.style.display='none'; Codehighlighter1_715_764_Open_Image.style.display='inline'; Codehighlighter1_715_764_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)</span><span id=Codehighlighter1_715_764_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_715_764_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log('这一次属正常的事件派发，你将看到百度的页面会弹出');<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img id=Codehighlighter1_782_886_Open_Image onclick="this.style.display='none'; Codehighlighter1_782_886_Open_Text.style.display='none'; Codehighlighter1_782_886_Closed_Image.style.display='inline'; Codehighlighter1_782_886_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_782_886_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_782_886_Closed_Text.style.display='none'; Codehighlighter1_782_886_Open_Image.style.display='inline'; Codehighlighter1_782_886_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">else</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">1</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)</span><span id=Codehighlighter1_782_886_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_782_886_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log('这一次的事件将终止向上传播，不派发给</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">div</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">对象，单</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">对象的事件将继续，你应该还是可以看到百度页面');<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.stopPropagation();<br><img id=Codehighlighter1_905_989_Open_Image onclick="this.style.display='none'; Codehighlighter1_905_989_Open_Text.style.display='none'; Codehighlighter1_905_989_Closed_Image.style.display='inline'; Codehighlighter1_905_989_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_905_989_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_905_989_Closed_Text.style.display='none'; Codehighlighter1_905_989_Open_Image.style.display='inline'; Codehighlighter1_905_989_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">else</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">==</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">2</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)</span><span id=Codehighlighter1_905_989_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_905_989_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log('这一次的事件将不执行</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">的默认处理，你应该没有看到百度页面的弹出');<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">++</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.preventDefault();<br><img id=Codehighlighter1_994_1072_Open_Image onclick="this.style.display='none'; Codehighlighter1_994_1072_Open_Text.style.display='none'; Codehighlighter1_994_1072_Closed_Image.style.display='inline'; Codehighlighter1_994_1072_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_994_1072_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_994_1072_Closed_Text.style.display='none'; Codehighlighter1_994_1072_Open_Image.style.display='inline'; Codehighlighter1_994_1072_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">else</span><span id=Codehighlighter1_994_1072_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_994_1072_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log('这一次的事件就此停止，既不执行</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">的默认处理，也不向父对象</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">div</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">传播');<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">0</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.stop();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;log('</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&lt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&gt;-</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">onclick,&nbsp;target</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">+</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">event.target);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">&nbsp;另一种绑定事件的方法，利用了事件类的bindWithEvent方法</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">$('id_a').onclick</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a_onclick.bindWithEvent($('id_a'));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
<img src ="http://www.cppblog.com/PeakGao/aggbug/21325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-05 16:26 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/05/21325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对javascript面向对象技术的理解(转)</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/05/21315.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Thu, 05 Apr 2007 06:38:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/05/21315.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21315.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/05/21315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21315.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21315.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.javascript是面向对象的解释型语言,它在解释之前会进行语法分析,如果有语法错误,立即停止;然后再逐行执行,应该是语法制导解释执行吧.所有的变量都是指针,变量指向对象&nbsp;&nbsp;<a href='http://www.cppblog.com/PeakGao/archive/2007/04/05/21315.html'>阅读全文</a><img src ="http://www.cppblog.com/PeakGao/aggbug/21315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-05 14:38 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/05/21315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记二：学用mootools的Cookie对象</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/05/21306.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Thu, 05 Apr 2007 05:11:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/05/21306.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21306.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/05/21306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21306.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21306.html</trackback:ping><description><![CDATA[就3个方法，非常简单：get,set,remove<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"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">测试Cookie</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">meta&nbsp;</span><span style="COLOR: #ff0000">http-equiv</span><span style="COLOR: #0000ff">="content-type"</span><span style="COLOR: #ff0000">&nbsp;content</span><span style="COLOR: #0000ff">="text/html;&nbsp;charset=gb2312"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">="./js/mootools.v1.00.js?v=1"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">textarea&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=content&nbsp;</span><span style="COLOR: #ff0000">cols</span><span style="COLOR: #0000ff">=80&nbsp;</span><span style="COLOR: #ff0000">rows</span><span style="COLOR: #0000ff">=20</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">textarea</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=button&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">='查询'&nbsp;</span><span style="COLOR: #ff0000">onclick</span><span style="COLOR: #0000ff">=javascript:onGet();</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=button&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">='设置'&nbsp;</span><span style="COLOR: #ff0000">onclick</span><span style="COLOR: #0000ff">=javascript:onSet();</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">input&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=button&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">='清除'&nbsp;</span><span style="COLOR: #ff0000">onclick</span><span style="COLOR: #0000ff">=javascript:onRemove();</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">language</span><span style="COLOR: #0000ff">="javascript"</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><br></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;name</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'mycookiename';<br></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'mycookievalue';<br><br></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;onGet(){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">var</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;val&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;Cookie.get(name);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">if</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(val){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('content').value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'查询结果：'&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">+</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;val;<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">else</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('content').value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'查询结果：未设置或过期';<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;onSet(){<br>&nbsp;&nbsp;&nbsp;&nbsp;Cookie.set(name,&nbsp;value,&nbsp;{duration:&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">1</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">});&nbsp;</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5">duration的值为天数，默认365，0为浏览器进程结束后过期</span><span style="COLOR: #008000; BACKGROUND-COLOR: #f5f5f5"><br></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;$('content').value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'Cookie已设置';<br>}<br></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;onRemove(){<br>&nbsp;&nbsp;&nbsp;&nbsp;Cookie.remove(name);<br>&nbsp;&nbsp;&nbsp;&nbsp;$('content').value</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">'Cookie已清除';<br>}<br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
<img src ="http://www.cppblog.com/PeakGao/aggbug/21306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-05 13:11 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/05/21306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记一：学用mootools的Ajax对象</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/05/21298.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Thu, 05 Apr 2007 03:45:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/05/21298.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21298.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/05/21298.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21298.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21298.html</trackback:ping><description><![CDATA[<p>看mootools能够按所需组件进行下载，所以对他尝试一下，第一个例子就是Ajax组件。<br><br>这个是客户端文件：testAjax.html<br></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="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">测试Ajax</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">meta&nbsp;</span><span style="COLOR: #ff0000">http-equiv</span><span style="COLOR: #0000ff">="content-type"</span><span style="COLOR: #ff0000">&nbsp;content</span><span style="COLOR: #0000ff">="text/html;&nbsp;charset=gb2312"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">="./js/mootools.v1.00.js?v=1"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">textarea&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=content&nbsp;</span><span style="COLOR: #ff0000">cols</span><span style="COLOR: #0000ff">=80&nbsp;</span><span style="COLOR: #ff0000">rows</span><span style="COLOR: #0000ff">=20</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">textarea</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">language</span><span style="COLOR: #0000ff">="javascript"</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">="text/javascript"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">new</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;Ajax(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">./testAjax.php</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">,&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method:&nbsp;'get',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onComplete:&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">function</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('content').value&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">this</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">.response.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}).request();<br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
<p><br>&nbsp;</p>
这个是服务器文件：testAjax.php<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"><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">php<br></span><span style="COLOR: #008080">header</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Content-Type:text/html;charset=gb2312</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">防止中文信息有乱码</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">header</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Cache-Control:no-cache</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">防止浏览器缓存，导致按F5刷新不管用</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">This&nbsp;is&nbsp;a&nbsp;test&nbsp;for&nbsp;mootools.Ajax，中文信息没有乱码</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #000000">?&gt;</span></div>
<br><br>简单吗？。。。 
<img src ="http://www.cppblog.com/PeakGao/aggbug/21298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-05 11:45 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/05/21298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML－加速、再加速</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/04/21228.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Wed, 04 Apr 2007 03:45:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/04/21228.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21228.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/04/21228.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21228.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">web开发人员是否必须掌握复杂的组件技术才能加快html页面的访问速度？答案是：不一定！实际上，有许多关于HTML与DHTML方面的技巧，它们原理简单而且上手容易。无论是技术高超的老手，还是初涉编程的菜鸟，领会这些都十分必要。</p>
<p style="TEXT-INDENT: 2em"><strong>明显HTML，暗渡&#8220;公用脚本&#8221;</strong></p>
<p style="TEXT-INDENT: 2em">减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时，就可以考虑将这些公用部分单独分离出来。比如：我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件，然后再在页面中按如下方式调用它：</p>
<p style="TEXT-INDENT: 2em">&lt;script src="myfile.js"&gt;&lt;/script&gt;</p>
<p style="TEXT-INDENT: 2em">这样，公用文件只需要下载一次，然后就进入缓冲区。等下次再次调用包含公用文件的html页面时，下载时间明显减少。</p>
<p style="TEXT-INDENT: 2em">让样式表内容进入地下工作</p>
<p style="TEXT-INDENT: 2em">CSS是HTML装扮器，一个漂亮的Web页面不可能没有它。HTML页面中有多种引用CSS的方法，不同的方法导致的效率也不一样。通常，我们可以将定义于&lt;style&gt;&lt;/style&gt;间的样式控制代码提取出来，保存到单独的.css文件中，然后在HTML页面中以&lt;LINK&gt;标记或者@import标记的方式进行引用：</p>
<p style="TEXT-INDENT: 2em">&lt;style&gt; </p>
<p style="TEXT-INDENT: 2em">@import url("mysheet1.css"); </p>
<p style="TEXT-INDENT: 2em">&lt;/style&gt; </p>
<p style="TEXT-INDENT: 2em">
<link href="mysheet2.css" rel=Stylesheet></p>
<p style="TEXT-INDENT: 2em">请注意2点：1、.css文件中无需包括&lt;style&gt;标记；2、@import和LINK标记要定义在HTML页面的HEAD部分。</p>
<p style="TEXT-INDENT: 2em"><strong>宝贵内存节省两法</strong></p>
<p style="TEXT-INDENT: 2em">尽量减少HTML页面占用的内存空间是加快页面下载速度的一个有效方法。在这方面，有2个需要注意的问题：</p>
<p style="TEXT-INDENT: 2em">1、使用同一种脚本语言</p>
<p style="TEXT-INDENT: 2em">HTML页面离不开脚本程序的支持，我们经常会在页面中嵌入多种脚本语言，比如JavaScript与VBScript。但是，不知你发觉没有：这样的混合使用减慢了页面的访问速度。原因在于：要解释并运行多种脚本代码，就必须在内存中装载多种脚本引擎。所以，请尽量在页面中使用同一种脚本语言编写代码。</p>
<p style="TEXT-INDENT: 2em">2、巧用IFrame</p>
<p style="TEXT-INDENT: 2em">你使用过&lt;IFRAME&gt;标记吗？它可是一个非常美妙的功能。如果要在一个HTML文档中包含第2个页面的内容，通常的方法是使用&lt;FRAMESET&gt;标记。但是有了&lt;IFRAME&gt;，一切变得简单了。比如，开发一个文档预览页面，可以在左边放置一系列主题，在右边放置一个IFRAME，其中包含要预览的文档；当鼠标掠过左边的每一个主题链接时，就在右边建立一个新的IFRAME以预览文档。这样做，代码效率无疑是高效的，但同时导致了繁重的处理过程，最终是缓慢的速度。</p>
<p style="TEXT-INDENT: 2em">没关系，我们有办法：只使用单一的IFRAME。当鼠标指向一个新主题时，只需要修改IFRAME元素的SRC属性即可。这样，任何时间内只会有一个预览文档保留在内存。</p>
<p style="TEXT-INDENT: 2em"><strong>择优选用动画定位属性</strong></p>
<p style="TEXT-INDENT: 2em">每天上网浏览页面，你一定会看到许多动画效果。比如，一个可爱的小兔子在页面上来回地走动 ... 实现这个效果的核心技术就是CCS定位。通常，我们是使用element.style.left和element.style.top2个属性来达到图形定位的目的。但是，这样做会产生一些问题：left属性返回一个字符串，并且其中包含了度量单位（比如100px)。因此，要设定新的位置坐标，就必须首先对这个字符串返回值进行处理，然后才能赋值，象下面一样：</p>
<p style="TEXT-INDENT: 2em">dim stringLeft, intLeft </p>
<p style="TEXT-INDENT: 2em">stringLeft = element.style.left </p>
<p style="TEXT-INDENT: 2em">intLeft = parseInt(stringLeft) </p>
<p style="TEXT-INDENT: 2em">intLeft = intLeft + 10 </p>
<p style="TEXT-INDENT: 2em">element.style.left = intLeft; </p>
<p style="TEXT-INDENT: 2em">你一定会感觉做这么点事情竟要编写这么复杂的代码，是否有更简洁的方法？当然有！请看这4个属性：posLeft、posTop、posWidth 和 posHeight，它们对应于相应字符串返回值的点数数值。好了，使用这些属性重新编写代码实现上面代码实现的功能：</p>
<p style="TEXT-INDENT: 2em">element.style.posLeft += 10</p>
<p style="TEXT-INDENT: 2em">代码短小、速度却更快！</p>
<strong>循环控制多个动画<br><br></strong>说到制作动画效果，当然离不开定时器的运用。通常的方法就是使用window.setTimeout来不断地定位页面上的元素。但是，如果页面上有多个动画要显示，是不是就要设定多个定时器呢？答案是No！原因很简单：定时器功能将消耗掉大量宝贵的系统资源。可是我们仍能在页面上控制多个动画，技巧就是使用一个循环。在循环中根据不同的变量值控制相应动画的位置，整个循环中只使用一个window.setTimeout()函数调用。<br><br><strong>Visibility快于Display</strong><br><br>让图画时隐时现会创造很有趣的效果，有2种方法可以实现这个目的：使用CSS的visibility属性或者display属性。对于绝对位置元素，diaplay和visibility具有同样的效果。两者的区别在于：设置为display:none的元素将不再占用文档流的空间，而设置为visibility:hidden的元素仍然保留原位置。<br><br>但是如果要处理绝对位置的元素，使用visibility会更快。<br><br><strong>从小处着手</strong><br><br>编写DHTML网页的一个重要提示是：从小处着手。初次编写DHTML页面时，一定不要试图在页面中使用你了解到的全部DHTML功能。每次可以只使用一个单一的新特征，并且仔细地观察由此产生的变化。如果发现性能有所下降，就可以快速地找到为什么。<br><br><strong>脚本的DEFER化</strong><br><br>DEFER是脚本程序强大功能中的一个&#8220;无名英雄&#8221;。你可能从没有使用过它，但是看完这里的介绍后，相信你就离不开它。它告诉浏览器Script段包含了无需立即执行的代码，并且，与SRC属性联合使用，它还可以使这些脚本在后台被下载，前台的内容则正常显示给用户。<br><br><img src="http://cimg.163.com/catchpic/2/21/216CEB40102D1AA95946C5CCAEE6629A.gif"><br><br><strong>最后请注意两点：</strong><br><br>1、不要在defer型的脚本程序段中调用document.write命令，因为document.write将产生直接输出效果。<br><br>2、而且，不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。<br><br>保持同一URL的大小写一致性<br><br>我们都知道UNIX服务器是大小写敏感的，但是你知道吗：Internet Explorer的缓冲区也是区别对待大小写字符串的。因此，作为web开发者，一定要记住保持相同链接的URL字符串在不同位置的大小写的一致性。否则，就会在浏览器的缓冲区中存放同一位置的不同文件备份，也增加了下载同一位置内容的请求次数。这些都无疑降低了web访问效率。所以请谨记：同一位置的URL，在不同页面中请保持URL字符串的大小写一致性。<br><br>让标记有始有终<br><br>自己编写或者查看他人的HTML代码时，我们一定都遇到过标记有头无尾的情况。比如：<br><br>&lt;P&gt;有头无尾标记举例 <br>&lt;UL&gt; <br>&lt;LI&gt;第一个<br>&lt;LI&gt;第二个<br>&lt;LI&gt;第三个<br>&lt;/UL&gt; <br><br>很明显，上面的代码中缺少三个&lt;/LI&gt;结束标记。但是这并不妨碍它的正确执行。在HTML中，这样的标记还有一些，例如FRAME、IMG和P。 <br><br>可是请不要偷懒，请将结束标记写完整，这样做不仅使HTML代码格式规范，更可以加速页面的显示速度。因为Internet Explorer将不会花费时间判断和计算段落或者列表项目在哪里结束。<br><br>&lt;P&gt;有头有尾标记举例&lt;/P&gt; <br>&lt;UL&gt; <br>&lt;LI&gt;第一个&lt;/LI&gt; <br>&lt;LI&gt;第二个&lt;/LI&gt; <br>&lt;LI&gt;第三个&lt;/LI&gt; <br>&lt;/UL&gt; <br><br>OK，以上列举了有关加速HTML页面的10个处理技巧，描述这些很简单，但是只有真正领会并掌握其中的本质，并且举一反三，才会编写出更快、更好的程序。 
<img src ="http://www.cppblog.com/PeakGao/aggbug/21228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-04 11:45 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/04/21228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何利用IE进行JavaScript脚本调试 </title><link>http://www.cppblog.com/PeakGao/archive/2007/04/04/21222.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Wed, 04 Apr 2007 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/04/21222.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21222.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/04/21222.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21222.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21222.html</trackback:ping><description><![CDATA[B/S模式的程序好多时候都要用到JavaScript脚本，它的功能十分强大，但是调试却非常麻烦，因为没有合适的工具，其实IE就支持对JavaScript进行脚本调试，只是需要对IE和脚本进行相应的设置。<br>&nbsp;1。Internet选项-&gt;高级-&gt;禁用脚本调试 把它后面的队勾去掉。就使得IE支持脚本调试了，但是这还不行，我们还需要在代码里进行一个简单的事定，在需要调试的地方加入debugger;表示从这里开始调试（有的时候需要从新打开IE）。此时打开此页就会出现脚本调试的选择框，选择一个工具进行调试。<br>下面是个简单的例子<br>&lt;html&gt;<br>&lt;head&gt;<br>脚本调试<br>&lt;/head&gt;<br>&lt;body onload='test()'&gt;<br>这是个调用脚本调试器的例子。<br>&lt;/body&gt;<br>&lt;/html&gt;<br>&lt;script language='javascript'&gt;<br>function test()<br>{<br>&nbsp;debugger;<br>&nbsp;var str = '这是个调用脚本调试器的例子';<br>&nbsp;alert(str);<br>}<br>&lt;/script&gt; 
<img src ="http://www.cppblog.com/PeakGao/aggbug/21222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-04 11:16 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/04/21222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在IE 和 Firefox 中兼容使用js</title><link>http://www.cppblog.com/PeakGao/archive/2007/04/03/21158.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Tue, 03 Apr 2007 02:50:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/04/03/21158.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/21158.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/04/03/21158.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/21158.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/21158.html</trackback:ping><description><![CDATA[<font size=4>1、在定义 页面元素的时候，如果该页面元素不需要被脚本调用，那么它就不需要定义其name和id属性；</font>
<p>&#160;</p>
<p><font size=4>2、如果需要定义页面元素的name,id属性，那么避免不同元素的name和id相同；</font></p>
<p><font size=4>3、如果没有特殊需要，尽量让name和id相同，这主要是为了通用</font></p>
<p><font size=4>4、在脚本中，获得元素时，尽量用document.getElementById("name / id")&nbsp;&nbsp; ，能不使用尽量不使用其他的</font></p>
<p>&#160;</p>
<p>&#160;</p>
<p><span class=Code><span class=Code><font color=#000000 size=5>下面是收集的一些IE和Firefox的差异：</font></span></span></p>
<p><span class=Code><span class=Code><font size=5></font></span></span></p>
<p><span class=Code><span class=Title><span class=Code></span></span></span></p>
<p><font size=4>1. 对象问题<br>1.1 Form对象<br>现有问题：<br>现有代码这获得form对象通过document.forms("formName")，这样使用在IE 能接受，MF 不能。<br>解决方法：<br>改用 作为下标运算。改为document.forms["formName"]<br>备注<br>上述的改用 作为下标运算中的formName是id而name<br><br>1.2 HTML对象<br>现有问题：<br>在 IE 中，HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。<br>document.all("itemName")或者document.all("itemId")<br>解决方法：<br>使用对象ID作为对象变量名<br>document.getElementById("itemId")<br>备注<br>document.all是IE自定义的方法，所以请大家尽量不使用。<br>还有一种方式，在IE和MF都可以使用<br>var f = document.forms["formName "];<br>var o = f. itemId;<br><br>1.3 DIV对象<br>现有问题：<br>在 IE 中，DIV对象可以使用ID作为对象变量名直接使用。在 MF 中不能。<br>DivId.style.display = "none"<br>解决方法：<br>document.getElementById("DivId").style.display = "none"<br>备注<br>获得对象的方法不管是不是DIV对象，都使用getElementById方法。参见1.2<br><br><br>1.4 关于frame<br>现有问题<br>在 IE中 可以用window.testFrame取得该frame，mf中不行<br>解决方法<br>在frame的使用方面MF和IE的最主要的区别是：<br>如果在frame标签中书写了以下属性：<br><br>那么IE可以通过id或者name访问这个frame对应的window对象<br>而mf只可以通过name来访问这个frame对应的window对象<br>例如如果上述frame标签写在最上层的window里面的htm里面，那么可以这样访问<br>IE： window.top.frameId或者window.top.frameName来访问这个window对象<br>MF：只能这样window.top.frameName来访问这个window对象<br>另外，在mf和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签<br>并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容<br>也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容<br><br>1.5 窗口<br>现有问题<br>IE中可以通过showModalDialog和showModelessDialog打开模态和非模态窗口，但是MF不支持。<br>解决办法<br>直接使用window.open(pageURL,name,parameters)方式打开新窗口。<br>如果需要传递参数，可以使用frame或者iframe。<br><br>2. 总结<br>2.1 在JS中定义各种对象变量名时，尽量使用id，避免使用name。<br>在 IE 中，HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能，所以在平常使用时请尽量使用id，避免只使用name，而不使用id。<br><br>2.2 变量名与某 HTML 对象 id 相同的问题<br>现有问题<br>在 MF 中，因为对象 id 不作为 HTML 对象的名称，所以可以使用与 HTML 对象 id 相同的变量名，IE 中不能。 <br>解决方法<br>在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br>此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。</font></p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/21158.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-03 10:50 <a href="http://www.cppblog.com/PeakGao/archive/2007/04/03/21158.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 Cookies</title><link>http://www.cppblog.com/PeakGao/archive/2007/03/19/20161.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Mon, 19 Mar 2007 12:56:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/03/19/20161.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/20161.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/03/19/20161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/20161.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/20161.html</trackback:ping><description><![CDATA[
		<h3>
				<a name="使用 Cookies">使用 Cookies</a>
		</h3>
		<p>　　我们已经知道，在 document 对象中有一个 cookie 属性。但是 Cookie 又是什么？“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息，这些文件就称为 Cookie。”—— MSIE 帮助。一般来说，Cookies 是 CGI 或类似，比 HTML 高级的文件、程序等创建的，但是 JavaScript 也提供了对 Cookies 的很全面的访问权利。</p>
		<p>　　在继续之前，我们先要学一学 <b><a name="Cookie 的基本知识">Cookie 的基本知识</a></b>。</p>
		<p>　　每个 Cookie 都是这样的：&lt;cookie名&gt;=&lt;值&gt;</p>
		<p>　　&lt;cookie名&gt;的限制与 JavaScript 的命名限制大同小异，少了“不能用 JavaScript 关键字”，多了“只能用可以用在 URL 编码中的字符”。后者比较难懂，但是只要你只用字母和数字命名，就完全没有问题了。&lt;值&gt;的要求也是“只能用可以用在 URL 编码中的字符”。</p>
		<p>　　每个 Cookie 都有失效日期，一旦电脑的时钟过了失效日期，这个 Cookie 就会被删掉。我们不能直接删掉一个 Cookie，但是可以用设定失效日期早于现在时刻的方法来间接删掉它。</p>
		<p>　　每个网页，或者说每个站点，都有它自己的 Cookies，这些 Cookies 只能由这个站点下的网页来访问，来自其他站点或同一站点下未经授权的区域的网页，是不能访问的。每一“组”Cookies 有规定的总大小（大约 2KB 每“组”），一超过最大总大小，则最早失效的 Cookie 先被删除，来让新的 Cookie“安家”。</p>
		<p>　　现在我们来学习<b><a name="使用 document.cookie 属性">使用 document.cookie 属性</a></b>。</p>
		<p>　　如果直接使用 document.cookie 属性，或者说，用某种方法，例如给变量赋值，来获得 document.cookie 的值，我们就可以知道在现在的文档中有多少个 Cookies，每个 Cookies 的名字，和它的值。例如，在某文档中添加“document.write(document.cookie)”，结果显示：</p>
		<blockquote>
				<p>name=kevin; email=kevin@kevin.com; lastvisited=index.html</p>
		</blockquote>
		<p>这意味着，文档包含 3 个 Cookies：name, email 和 lastvisited，它们的值分别是 kevin, kevin@kevin.com 和 index.html。可以看到，两个 Cookies 之间是用分号和空格隔开的，于是我们可以用 cookieString.split('; ') 方法得到每个 Cookie 分开的一个数组（先用 var cookieString = document.cookie）。</p>
		<p>　　设定一个 Cookie 的方法是对 document.cookie 赋值。与其它情况下的赋值不同，向 document.cookie 赋值不会删除掉原有的 Cookies，而只会增添 Cookies 或更改原有 Cookie。赋值的格式：</p>
		<blockquote>
				<p>document.cookie = '<b>cookieName</b>=' + <u>escape</u>('<b>cookieValue</b>')<br />     + '<u>;</u>expires=' + <b>expirationDateObj</b>.<u>toGMTString()</u>;</p>
		</blockquote>
		<p>是不是看到头晕了呢？以上不是粗体字的地方是要照抄不误的，粗体字是要按实际情况做出改动的。cookieName 表示 Cookie 的名称，cookieValue 表示 Cookie 的值，expirationDateObj 表示储存着失效日期的日期对象名，如果不需要指定失效日期，则不需要第二行。不指定失效日期，则浏览器默认是在关闭浏览器（也就是关闭所有窗口）之后过期。</p>
		<p>　　看到了上面的一些下划线了么？这些是应该注意的地方。<br />　　首先 escape() 方法：为什么一定要用？因为 Cookie 的值的要求是“只能用可以用在 URL 编码中的字符”。我们知道“escape()”方法是把字符串按 URL 编码方法来编码的，那我们只需要用一个“escape()”方法来处理输出到 Cookie 的值，用“unescape()”来处理从 Cookie 接收过来的值就万无一失了。而且这两个方法的最常用途就是处理 Cookies。其实设定一个 Cookie 只是“document.cookie = 'cookieName=cookieValue'”这么简单，但是为了避免在 cookieValue 中出现 URL 里不准出现的字符，还是用一个 escape() 好。<br />　　然后“expires”前面的分号：注意到就行了。是分号而不是其他。<br />　　最后 toGMTString() 方法：设定 Cookie 的时效日期都是用 GMT 格式的时间的，其它格式的时间是没有作用的。</p>
		<p>　　现在我们来实战一下。设定一个“name=rose”的 Cookie，在 3 个月后过期。</p>
		<blockquote>
				<p>var expires = new Date();<br />expires.setTime(expires.getTime() + 3 * 30 * 24 * 60 * 60 * 1000);<br />/*   三个月 x 一个月当作 30 天 x 一天 24 小时<br />   x 一小时 60 分 x 一分 60 秒 x 一秒 1000 毫秒 */<br />document.cookie = 'name=rose;expires=' + expires.toGMTString();</p>
		</blockquote>
		<p>为什么没有用 escape() 方法？这是因为我们知道 rose 是一个合法的 URL 编码字符串，也就是说，'rose' == escape('rose')。一般来说，如果设定 Cookie 时不用 escape()，那获取 Cookie 时也不用 unescape()。</p>
		<p>　　再来一次：编写一个函数，作用是查找指定 Cookie 的值。</p>
		<blockquote>
				<p>function getCookie(cookieName) {<br />  var cookieString = document.cookie;<br />  var start = cookieString.indexOf(cookieName + '=');<br />  // 加上等号的原因是避免在某些 Cookie 的值里有<br />  // 与 cookieName 一样的字符串。<br />  if (start == -1) // 找不到<br />    return null;<br />  start += cookieName.length + 1;<br />  var end = cookieString.indexOf(';', start);<br />  if (end == -1) return unescape(cookieString.substring(start));<br />  return unescape(cookieString.substring(start, end));<br />}</p>
		</blockquote>
		<p>这个函数用到了字符串对象的一些方法，如果你不记得了（你是不是这般没记性啊），请快去查查。这个函数所有的 if 语句都没有带上 else，这是因为如果条件成立，程序运行的都是 return 语句，在函数里碰上 return，就会终止运行，所以不加 else 也没问题。该函数在找到 Cookie 时，就会返回 Cookie 的值，否则返回“null”。</p>
		<p>　　现在我们要删除刚才设定的 name=rose Cookie。</p>
		<blockquote>
				<p>var expires = new Date();<br />expires.setTime(expires.getTime() - 1);<br />document.cookie = 'name=rose;expires=' + expires.toGMTString();</p>
		</blockquote>
		<p>可以看到，只需要把失效日期改成比现在日期早一点（这里是早 1 毫秒），再用同样的方法设定 Cookie，就可以删掉 Cookie 了。</p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/20161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-03-19 20:56 <a href="http://www.cppblog.com/PeakGao/archive/2007/03/19/20161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>预读图像</title><link>http://www.cppblog.com/PeakGao/archive/2007/03/19/20127.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Mon, 19 Mar 2007 02:40:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/03/19/20127.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/20127.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/03/19/20127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/20127.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/20127.html</trackback:ping><description><![CDATA[
		<p>
				<b>不显示在文档中的 Image 对象</b>
		</p>
		<p>不显示在文档中的 Image 对象是用 var 语句定义的：</p>
		<blockquote>
				<p>var myImage = new Image(); 或<br />var myImage = new Image(&lt;图片地址字符串&gt;);</p>
		</blockquote>
		<p>然后就可以像一般 Image 对象一样对待 myImage 变量了。不过既然它不显示在文档中，以下属性：lowsrc, width, height, vspace, hspace, border 就没有什么用途了。一般这种对象只有一个用：预读图片(preload)。因为当对对象的 src 属性赋值的时候，整个文档的读取、JavaScript 的运行都暂停，让浏览器专心的读取图片。预读图片以后，浏览器的缓存里就有了图片的 Copy，到真正要把图片放到文档中的时候，图片就可以立刻显示了。现在的网页中经常会有一些图像连接，当鼠标指向它的时候，图像换成另外一幅图像，它们都是先预读图像的。</p>
		<p>
				<b>预读图像的 JavaScript 例子</b>
		</p>
		<blockquote>
				<p>var imagePreload = new Image();</p>
				<p>imagePreload.src = '001.gif';<br />imagePreload.src = '002.gif';<br />imagePreload.src = '003.gif';</p>
		</blockquote>
		<p>以上例子适合预读少量图片。</p>
		<blockquote>
				<p>function imagePreload() {<br />  var imgPreload = new Image();<br />  for (i = 0; i &lt; arguments.length; i++) {<br />    imgPreload.src = arguments[i];<br />  }<br />}</p>
				<p>imagePreload('001.gif', '002.gif', '003.gif', '004.gif', '005.gif');</p>
		</blockquote>
		<p>以上例子适合预读大量图片。</p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/20127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-03-19 10:40 <a href="http://www.cppblog.com/PeakGao/archive/2007/03/19/20127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打开某个网页时，附加创建一个新窗口（如广告，更新通知等）</title><link>http://www.cppblog.com/PeakGao/archive/2007/03/19/20124.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Mon, 19 Mar 2007 02:02:00 GMT</pubDate><guid>http://www.cppblog.com/PeakGao/archive/2007/03/19/20124.html</guid><wfw:comment>http://www.cppblog.com/PeakGao/comments/20124.html</wfw:comment><comments>http://www.cppblog.com/PeakGao/archive/2007/03/19/20124.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/PeakGao/comments/commentRss/20124.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/PeakGao/services/trackbacks/20124.html</trackback:ping><description><![CDATA[
		<p>&lt;script language="JavaScript"&gt;<br />&lt;!--<br />var whatsNew = open('','_blank','top=50,left=50,width=200,height=300,' +<br />                'menubar=no,toolbar=no,directories=no,location=no,' +<br />                'status=no,resizable=no,scrollbars=yes');<br />whatsNew.document.write('&lt;center&gt;&lt;b&gt;更新通知&lt;/b&gt;&lt;/center&gt;');<br />whatsNew.document.write('&lt;p&gt;最后更新日期：00.08.01');<br />whatsNew.document.write('&lt;p&gt;00.08.01：增加了“我的最爱”栏目。');<br />whatsNew.document.write('&lt;p align="right"&gt;' +<br />                '&lt;a href="javascript:self.close()"&gt;关闭窗口&lt;/a&gt;');<br />whatsNew.document.close();<br />--&gt;<br />&lt;/script&gt;</p>
		<p>当然也可以先写好一个 HTML 文件，在 open() 方法中直接 load 这个文件。</p>
<img src ="http://www.cppblog.com/PeakGao/aggbug/20124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/PeakGao/" target="_blank">PeakGao</a> 2007-03-19 10:02 <a href="http://www.cppblog.com/PeakGao/archive/2007/03/19/20124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>