﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-shishaomeng-文章分类-javascript</title><link>http://www.blogjava.net/shishaomeng/category/39020.html</link><description>让一切触手可及！</description><language>zh-cn</language><lastBuildDate>Sun, 26 Apr 2009 19:15:42 GMT</lastBuildDate><pubDate>Sun, 26 Apr 2009 19:15:42 GMT</pubDate><ttl>60</ttl><item><title>Javascript中event.keyCode键码值表</title><link>http://www.blogjava.net/shishaomeng/articles/267220.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Thu, 23 Apr 2009 12:07:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/267220.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/267220.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/267220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/267220.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/267220.html</trackback:ping><description><![CDATA[<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="8"><strong>字母和数字键的键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td>
            <p><font color="#ff0000">A</font></p>
            </td>
            <td>65</td>
            <td><font color="#ff0000">J</font></td>
            <td>74</td>
            <td><font color="#ff0000">S</font></td>
            <td>83</td>
            <td><font color="#ff0000">1</font></td>
            <td>49</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">B</font></td>
            <td>66</td>
            <td><font color="#ff0000">K</font></td>
            <td>75</td>
            <td><font color="#ff0000">T</font></td>
            <td>84</td>
            <td><font color="#ff0000">2</font></td>
            <td>50</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">C</font></td>
            <td>67</td>
            <td><font color="#ff0000">L</font></td>
            <td>76</td>
            <td><font color="#ff0000">U</font></td>
            <td>85</td>
            <td><font color="#ff0000">3</font></td>
            <td>51</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">D</font></td>
            <td>68</td>
            <td><font color="#ff0000">M</font></td>
            <td>77</td>
            <td><font color="#ff0000">V</font></td>
            <td>86</td>
            <td><font color="#ff0000">4</font></td>
            <td>52</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">E</font></td>
            <td>69</td>
            <td><font color="#ff0000">N</font></td>
            <td>78</td>
            <td><font color="#ff0000">W</font></td>
            <td>87</td>
            <td><font color="#ff0000">5</font></td>
            <td>53</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">F</font></td>
            <td>70</td>
            <td><font color="#ff0000">O</font></td>
            <td>79</td>
            <td><font color="#ff0000">X</font></td>
            <td>88</td>
            <td><font color="#ff0000">6</font></td>
            <td>54</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">G</font></td>
            <td>71</td>
            <td><font color="#ff0000">P</font></td>
            <td>80</td>
            <td><font color="#ff0000">Y</font></td>
            <td>89</td>
            <td><font color="#ff0000">7</font></td>
            <td>55</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">H</font></td>
            <td>72</td>
            <td><font color="#ff0000">Q</font></td>
            <td>81</td>
            <td><font color="#ff0000">Z</font></td>
            <td>90</td>
            <td><font color="#ff0000">8</font></td>
            <td>56</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">I</font></td>
            <td>73</td>
            <td><font color="#ff0000">R</font></td>
            <td>82</td>
            <td><font color="#ff0000">0</font></td>
            <td>48</td>
            <td><font color="#ff0000">9</font></td>
            <td>57</td>
        </tr>
    </tbody>
</table>
<div style="clear: both"></div>
<p>&nbsp;</p>
<div>
<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="4"><strong>数字键盘上的键的键码值(keyCode)</strong></td>
            <td colspan="4"><strong>功能键键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td>
            <p><font color="#ff0000">0</font></p>
            </td>
            <td>96</td>
            <td><font color="#ff0000">8</font></td>
            <td>104</td>
            <td><font color="#ff0000">F1</font></td>
            <td>112</td>
            <td><font color="#ff0000">F7</font></td>
            <td>118</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">1</font></td>
            <td>97</td>
            <td><font color="#ff0000">9</font></td>
            <td>105</td>
            <td><font color="#ff0000">F2</font></td>
            <td>113</td>
            <td><font color="#ff0000">F8</font></td>
            <td>119</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">2</font></td>
            <td>98</td>
            <td><font color="#ff0000">*</font></td>
            <td>106</td>
            <td><font color="#ff0000">F3</font></td>
            <td>114</td>
            <td><font color="#ff0000">F9</font></td>
            <td>120</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">3</font></td>
            <td>99</td>
            <td><font color="#ff0000">+</font></td>
            <td>107</td>
            <td><font color="#ff0000">F4</font></td>
            <td>115</td>
            <td><font color="#ff0000">F10</font></td>
            <td>121</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">4</font></td>
            <td>100</td>
            <td><font color="#ff0000">Enter</font></td>
            <td>108</td>
            <td><font color="#ff0000">F5</font></td>
            <td>116</td>
            <td><font color="#ff0000">F11</font></td>
            <td>122</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">5</font></td>
            <td>101</td>
            <td><font color="#ff0000">-</font></td>
            <td>109</td>
            <td><font color="#ff0000">F6</font></td>
            <td>117</td>
            <td><font color="#ff0000">F12</font></td>
            <td>123</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">6</font></td>
            <td>102</td>
            <td>
            <p>　　<font color="#ff0000">.</font></p>
            </td>
            <td>110</td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">7</font></td>
            <td>
            <p>　　103</p>
            </td>
            <td><font color="#ff0000">/</font></td>
            <td>111</td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
        </tr>
    </tbody>
</table>
</div>
<div style="clear: both"></div>
<p>&nbsp;</p>
<div>
<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="8"><strong>控制键键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">BackSpace</font></td>
            <td>8</td>
            <td><font color="#ff0000">Esc</font></td>
            <td>27</td>
            <td><font color="#ff0000">Right Arrow</font></td>
            <td>39</td>
            <td><font color="#ff0000">-_</font></td>
            <td>189</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Tab</font></td>
            <td>9</td>
            <td><font color="#ff0000">Spacebar</font></td>
            <td>32</td>
            <td><font color="#ff0000">Down Arrow</font></td>
            <td>40</td>
            <td><font color="#ff0000">.&gt;</font></td>
            <td>190</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Clear</font></td>
            <td>12</td>
            <td><font color="#ff0000">Page Up</font></td>
            <td>33</td>
            <td><font color="#ff0000">Insert</font></td>
            <td>45</td>
            <td><font color="#ff0000">/?</font></td>
            <td>191</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Enter</font></td>
            <td>13</td>
            <td><font color="#ff0000">Page Down</font></td>
            <td>34</td>
            <td><font color="#ff0000">Delete</font></td>
            <td>46</td>
            <td><font color="#ff0000">`~</font></td>
            <td>192</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Shift</font></td>
            <td>16</td>
            <td><font color="#ff0000">End</font></td>
            <td>35</td>
            <td><font color="#ff0000">Num Lock</font></td>
            <td>144</td>
            <td><font color="#ff0000">[{</font></td>
            <td>219</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Control</font></td>
            <td>17</td>
            <td><font color="#ff0000">Home</font></td>
            <td>36</td>
            <td><font color="#ff0000">;:</font></td>
            <td>186</td>
            <td><font color="#ff0000">\|</font></td>
            <td>220</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Alt</font></td>
            <td>18</td>
            <td><font color="#ff0000">Left Arrow</font></td>
            <td>37</td>
            <td><font color="#ff0000">=+</font></td>
            <td>187</td>
            <td><font color="#ff0000">]}</font></td>
            <td>221</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Cape Lock</font></td>
            <td>20</td>
            <td><font color="#ff0000">Up Arrow</font></td>
            <td>38</td>
            <td><font color="#ff0000">,&lt;</font></td>
            <td>188</td>
            <td><font color="#ff0000">'"</font></td>
            <td>222</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div align="right"><font color="#000066"></font>&nbsp;</div>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/267220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-23 20:07 <a href="http://www.blogjava.net/shishaomeng/articles/267220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript对象概念（转 愚人码头）</title><link>http://www.blogjava.net/shishaomeng/articles/266983.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Wed, 22 Apr 2009 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/266983.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/266983.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/266983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/266983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/266983.html</trackback:ping><description><![CDATA[<br />
本文介绍了几乎所有关于对象的基本概念，什么是对象，如何创建对象，对象的属性的设置和读取，删除属性的方法，构造函数，对象原型，父类，子类，继承等等。<br />
1.对象 <br />
* 对象是一种复合数据类型，它们将多个数据值集中在一个单元中，而且运行使用名字来存取这些值。解释对象的另一种方式是，对象是一个无序的属性集合，每个属性都有自己的名字和值。存储在对象中的已命名的值可以是数字和字符串这样的原始值，也可以是对象。<br />
*/<br />
var o = new Object();<br />
2.对象直接量创建对象 <br />
* 对象直接量由属性说明列表构成，列表包含在大括号中，其中的属性说明由逗号隔开。<br />
* 对象直接量中的每个属性说明都由属性名加上冒号和属性值构成。<br />
*/<br />
var zhangsan = {name:&#8221;zhangsan&#8221;, age:34, married:true};<br />
window.alert(typeof zhangsan); //输出object<br />
3.属性的读取和设置<br />
* 对象的属性通过点号运算符读取和设置。对象的新属性可以通过直接创建。<br />
*/<br />
window.alert(zhangsan.car); //输出undefined<br />
zhangsan.car=&#8221;BMW&#8221;; //直接赋值<br />
window.alert(zhangsan.car); //输出BMW<br />
&nbsp;4.属性的枚举<br />
* 通过for循环枚举每一个属性，顺序不能保证固定。<br />
* 注意枚举出的是属性名称，并不是属性值。<br />
*/<br />
var values = &#8220;&#8221;;<br />
for(var v in zhangsan)values += v+&#8221;\n&#8221;; //枚举每一个属性<br />
window.alert(values);<br />
5.属性的删除使用delete，如delete zhangsan.car<br />
*/<br />
6.构造函数 <br />
* 构造函数是具有两个特性的javascript函数：<br />
* (1)它由new 运算符调用；<br />
* (2)传递给它的是一个对新创建的空对象的应用，将该引用作为关键字this的值，而且它还要对新创建的对象进行适当的初始化。<br />
* 记住：构造函数只是初始化对象，并不返回新创建的对象。<br />
*/<br />
function Rectangle(w, h){<br />
this.width = w;<br />
this.height = h;<br />
}<br />
var ret1 = new Rectangle(2, 1);<br />
//注意构造函数是如何使用它的参数来初始化this关键字所引用的对象的属性<br />
7.对象的方法 <br />
* 所谓方法，就是通过对象调用的javascript函数。我们知道，函数就是数值，它们所使用的名字没有任何特殊之处，可以将函数赋给任何变量，甚至赋给一个对象的任何属性，那么这个属性就是对象的方法了。<br />
* 在对象的方法体内，关键字this的值就成了调用该方法的对象。<br />
*/<br />
function print(){}<br />
ret1.print = print;<br />
&nbsp;8.关于this的讨论<br />
* 任何一个用作方法的函数都会得到一个额外的实际参数，即调用该函数的对象。由于方法通常是对那个对象执行某种操作，所以要表达函数作用于对象这一事实，最好采用方法的调用语法。<br />
* 如rect.setSize(width, height);<br />
* setSize(rect, width, height);<br />
* 虽然这两行代码对对象rect执行相同的操作，但是第一行代码在表达对象rect是操作的焦点(或者说操作的目标)这一观点时显然清楚得多。<br />
*<br />
* 虽然有区别地对待函数和方法比较有用，但实际上它们之间的差别并不大。回忆一下，函数是存储在变量中的值，而那个变量也不过是全局对象的一个属性。因此，当你调用一个函数时，实际上调用的是全局对象的一个方法。<br />
* 在这样的函数中，关键字this引用的是全局对象。所以函数和方法之间在技术上没有差别，真正的差别在于设计和目的上，方法是用来对this对象进行操作的，而函数通常会是独立的，并不需要使用this对象。<br />
*/<br />
(function f(){<br />
var values = &#8220;&#8221;;<br />
for(var v in this)values += v + &#8221; &#8220;;<br />
window.alert(values);<br />
})(); //返回window对象的所有属性和方法名称<br />
9.原型对象和继承<br />
* javascript每个对象都有原型对象，每个对象都继承原型对象的所有属性。<br />
* 一个对象的原型是由创建并初始化该对象的构造函数定义的。javascript中的所有函数都有prototype属性，它引用了一个对象。虽然原型对象初始化时是空的，<br />
* 但是你在其中定义的任何属性都会被该构造函数创建的所有对象继承。<br />
*<br />
* 构造函数定义了对象的类，并初始化了类中状态变量的属性，如width和height。因为原型对象和构造函数关联在一起，所以类的每个成员都从原型对象继承了相同的属性。<br />
* 这说明原型对象是存放方法和其他常量属性的理想场所。<br />
*<br />
* 注意，继承是在查询一个属性值时自动发生的。属性并非从原型对象复制到新的对象的，它们只不过看起来像是那些对象的属性。这其中有两点重要的含义。<br />
* 一是使用原型对象可以大量减少每个对象对内存的需求量，因为对象可以继承许多属性。二是即使属性在对象被创建之后才添加到它的原型对象中，对象也能够继承这些属性。<br />
*<br />
* 每个类都有一个原型对象，这个原型对象都具有一套属性。但是实际上却有大量的类实例，每个实例都能继承原型对象的属性。由于一个原型对象能够被多个对象继承，所以javascript<br />
* 必须强化读写属性值之间的不对称性。在读对象o的属性p时，javas会首先检查o是否具有一个名为p的属性。如果o没有这个属性，javascript就会再检查o的原型对象是否具有这个属性。这样才使得以原型为基础的继承机制起作用。<br />
*<br />
* 但是当写一个属性的值时，javascript并不会检查原型对象中是否有这个属性的值。因为，如果允许改变原型对象的这一属性，那就改变了整个对象类的p值，包括其他new出来的对象变量的属性值。<br />
*<br />
* 因此，属性的继承只发生在读属性值时，而不会发生在写属性值时。如果你设置的对象o的属性p是对象o从它的原型对象继承而来的，那么结果就是你直接在对象o中创建了一个新属性p。现在o已经有了一个自己的名为p的属性，它就不会再从它的原型对象继承p的值了。当你读p的值时，java首先查询o的属性。<br />
* 由于它发现了o中定义的p，就不必再查询原型对象，也就不会再发现原型对象中定义的p值了。我们称之为o中的p&#8221;遮蔽&#8221;了或者说&#8221;隐藏&#8221;了原型对象中的属性p。<br />
*<br />
* 因为原型对象的属性被一个类的所有对象共享，所以通常只用它们来定义类中所有对象的相同的属性。这使得原型对象适用于方法定义和常量的定义。<br />
*/<br />
10. 实例属性、实例方法、类属性、类方法<br />
* 每个对象都有它自己单独的实例属性的副本。我们说javas中的实例属性是那些在对象中用构造函数创建的或初始化的属性。<br />
*<br />
* 实例方法是由特定对象或实例调用的。实例方法使用了关键字this来引用它们要操作的对象或实例。虽然一个类的任何实例都可以调用实例方法，并不意味着每个对象都像实例属性那样含有自己专有的方法副本。相反，每个实例方法都是由类的所有实例共享的。在javascript中，给类定义一个实例方法，是通过把构造函数的原型对象中的一个属性设置为函数值来实现的。<br />
* 这样，由那个构造函数创建的所有实例都会共享一个已继承的对函数的引用。<br />
*<br />
* 类属性表示在所有类实例中只有一个副本。在javascript中，类属性本质上就是全局变量。但是它们与一个类关联在一起，在javascript的名字空间中拥有一个逻辑位置，这样它们就不会被其他的同名属性覆盖。<br />
* 如Circle.PI=3.14。虽然Circle是一个构造函数，但是由于javascript函数是对象，所以我们可以创建函数的属性，就像创建对象的属性一样。<br />
*<br />
* 类方法与类属性相似。在javascript中，要定义一个类方法，只需要用合适的函数作为构造函数的属性即可。<br />
*/<br />
11. 父类和子类 <br />
* 在javascript中，Object类所有类的父类，处于类层次图的最上层。所有的类都继承了Object类的所有方法。<br />
*<br />
* 我们已经学会了对象如何从它们构造函数的原型对象中继承属性，那么它们又是如何继承类Object的属性哪？我们知道，原型对象本身就是一个对象，它是由构造函数Object()创建的。<br />
* 这就意味着原型对象继承了Object.prototype属性。因此，ret1会继承Rectangle.prototype的属性，还会继承Object.prototype的属性。整因为所有对象的prototype属性会继承Object.prototype属性，<br />
* 所以所有javascript子类都继承了Object的所有属性，也即Object类是javascript的根类，处于类层次图的最顶层。<br />
*/<br />
&nbsp;12.使用[]读取和设置对象的属性 <br />
* 通常会采用点号运算符访问对象的属性，但是点号后面的属性是标识符。在javascript中，标识符必须逐字输入，它们不是一种数据类型。如果程序中属性是动态的、不确定的，那么我们将无法访问。<br />
* 前面解释过，对象是一群属性的集合，也就是数组。那么可以使用数组访问成员的运算符[]来访问对象的属性。[]中是属性名称，是字符串类型，我们就可以动态的确定对象属性名称了。<br />
*<br />
* 使用[]运算符的对象我们也称之为关联数组。关联数组是一种数据结构，允许你动态地将任意值和任意字符串关联在一起。实际上，javascript对象在内部就是用关联数组实现的。使用点号运算符只是为了是他们看起来更像C++和Java的静态对象而已。<br />
*<br />
* 前面的for/in循环实际上是对数组的操作。<br />
*<br />
* 我们通常意义说的数组是将任何值和非负整数关联在一起的数据结构。<br />
*<br />
* 数组实际上是一个具有额外功能层的对象。如var a = new Array();window.alert(typeof a);输出Object。<br />
*/<br />
13. Object类的属性和方法<br />
* constructor属性表示初始化该对象的构造函数。因此，可以使用该属性来判断对象的类型。<br />
*/<br />
function A(){return &#8220;aaaaaaaaa&#8221;};<br />
var a = new A();<br />
window.alert(a.constructor); //输出的是A的函数定义<br />
window.alert(a.constructor==A); //结果是true<br />
window.alert(a.constructor()); //输出aaaaaaaaaa<br />
/**<br />
* toString()方法没有任何实际参数，它返回的是一个字符串，该字符串代表了调用它的对象的类型或值。当javascript需要将一个对象转化成字符串时就调用这个对象的toString方法。<br />
* 例如，当用运算符&#8221;+&#8221;把一个字符串和一个对象连接到一起时，或者把一个对象传递给alert()或document.write()方法时，就会调用toString()方法。<br />
*/<br />
本文来源于WEB前端开发 http://www.css88.com , 原文地址： http://www.css88.com/archives/512 <br />
<img src ="http://www.blogjava.net/shishaomeng/aggbug/266983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-22 14:26 <a href="http://www.blogjava.net/shishaomeng/articles/266983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript程序编码规范</title><link>http://www.blogjava.net/shishaomeng/articles/265661.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Wed, 15 Apr 2009 01:27:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/265661.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/265661.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/265661.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/265661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/265661.html</trackback:ping><description><![CDATA[<p>这是一套适用于JavaScript程序的编码规范。它基于<a href="http://www.sun.com/" included="null"  $>Sun</a>的<a href="http://java.sun.com/docs/codeconv/" included="null"  $>Java程序编码规范</a>。但进行了大幅度的修改, 因为<a href="http://javascript.crockford.com/javascript.html" included="null"  $>JavaScript不是Java</a>。</p>
<p>软件的长期价值直接源于其编码质量。在它的整个生命周期里,一个程序可能会被许多人阅读或修改。如果一个程序可以清晰的展现出它的结构和特征,那就能减少在以后对其进行修改时出错的可能性。</p>
<p>编程规范可以帮助程序员们增加程序的健壮性。</p>
<p>所有的JavaScript代码都是暴露给公众的。所以我们更应该保证其质量。</p>
<p>保持整洁很重要。</p>
<h2>JavaScript文件</h2>
<p>JavaScript程序应独立保存在后缀名为<code>.js</code>的文件中。</p>
<p>JavaScript代码不应该被包含在HTML文件中,除非这是段特定只属于此部分的代码。在HTML中的JavaScript代码会明显增加文件大小,而且也不能对其进行缓存和压缩。</p>
<p><code><var>filename</var><code>.js&gt;</code>应尽量放到body的后面。这样可以减少因为载入script而造成其他页面内容载入也被延迟的问题。也没有必要使用<code>language</code>或者<code>type</code>属性。MIME类型是由服务器而非scripttag来决定的。</code></p>
<h2>缩进</h2>
<p>缩进的单位为四个空格。避免使用Tab键来缩进(即使现在已经是21世纪了),也始终没有个统一的Tab长短标准。虽然使用空格会增加文件的大小,但在局域网中几乎可以忽略,且在<a href="http://yuiblog.com/blog/2006/03/06/minification-v-obfuscation/" included="null"  $>最小化</a>过程中也可被消除掉。</p>
<h2>每行长度</h2>
<p>避免每行超过80个字符。当一条语句一行写不下时,请考虑折行。在运算符号,最好是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。下一行应该缩进8个空格。</p>
<h2>注释</h2>
<p>不要吝啬注释。给以后需要理解你的代码的人们(或许就是你自己)留下信息是非常有用的。注释应该和它们所注释的代码一样是书写良好且清晰明了。偶尔的小幽默就更不错了。记得要避免冗长或者情绪化。</p>
<p>及时地更新注释也很重要。错误的注释会让程序更加难以阅读和理解。</p>
<p>让注释有意义。重点在解释那些不容易立即明白的逻辑上。不要把读者的时间浪费在阅读类似于:</p>
<pre>    i = 0; //让i等于0</pre>
<p>使用单行注释。块注释用于注释正式文档和无用代码。</p>
<h2>变量声明</h2>
<p>所有的变量必须在使用前进行声明。JavaScript并不强制必须这么做,但是这么做可以让程序易于阅读,且也容易发现那些没声明的变量(它们会被编译成<a href="http://yuiblog.com/blog/2006/06/01/global-domination/" included="null"  $>全局变量</a>)。</p>
<p>将<code>var</code>语句放在函数的首部。</p>
<p>最好把每个变量的声明语句单独放到一行,并加上注释说明。所有变量按照字母排序。</p>
<pre>     var currentEntry; // 当前选择项   </pre>
<pre>     var level;        // 缩进程度    </pre>
<pre>    var size;         // 表格大小</pre>
<p>JavaScript没有块范围,所以在块里面定义变量很容易引起C/C++/Java程序员们的误解。在函数的首部定义所有的变量。</p>
<p>尽量减少全局变量的使用。不要让局部变量覆盖全局变量。</p>
<h2>函数声明</h2>
<p>所有的函数在使用前进行声明。 内函数的声明跟在<code>var</code>语句的后面。这样可以帮助判断哪些变量是在函数范围内的。</p>
<p>函数名与<code>(</code><small>(左括号)</small>之间不应该有空格。<code>)</code><small>(右括号)</small>与 开始程序体的<code>{</code><small>(左大括号)</small>之间应插入一个空格。函数程序体应缩进四个空格。<code>}</code><small>(右大括号)</small>与声明函数的那一行代码头部对齐。</p>
<pre>    function outer(c, d) {   </pre>
<pre>          var e = c * d;       </pre>
<pre>          function inner(a, b) {      </pre>
<pre>             return (e * a) + b;     </pre>
<pre>          }      </pre>
<pre>           return inner(0, 1);   </pre>
<pre>    }</pre>
<p>下面这种书写方式可以在JavaScript中正常使用,因为在JavaScript中,函数和对象的声明可以放到任何表达式允许的地方。且它让内联函数和混合结构具有最好的可读性。</p>
<pre>    function getElementsByClassName(className) {   </pre>
<pre>            var results = [];       </pre>
<pre>            walkTheDOM(document.body, function (node) {        </pre>
<pre>                            var a;                  // 类名数组       </pre>
<pre>                               var c = node.className; // 节点的类名         </pre>
<pre>                               var i;                  // 循环计数器</pre>
<pre>                                                   // If the node has a class name, then split it into a list of simple names.</pre>
<pre>                                                  // If any of them match the requested name, then append the node to the set of results.    </pre>
<pre>                          if (c) {             </pre>
<pre>                             a = c.split(' ');         </pre>
<pre>                             for (i = 0; i &lt; a.length; i += 1) {            </pre>
<pre>                                 if (a[i] === className) {              </pre>
<pre>                                          results.push(node);               </pre>
<pre>                                          break;                  </pre>
<pre>                                 }         </pre>
<pre>                             }           </pre>
<pre>                         }      </pre>
<pre>            });   </pre>
<pre>         return results;  </pre>
<pre>    }</pre>
<p>如果函数是匿名函数,则在<code>function</code>和<code>(</code><small>(左括号)</small>之间应有一个空格。如果省略了空格,否则会让人感觉函数名叫作 <code>function</code>。</p>
<pre>    div.onclick = function (e) {     </pre>
<pre>                          return false;   </pre>
<pre>                  };  </pre>
<pre>    that = {      </pre>
<pre>                 method: function () {       </pre>
<pre>                          return this.datum;    </pre>
<pre>                 },       </pre>
<pre>                       datum: 0   </pre>
<pre>    };</pre>
<p>尽量不使用全局函数。</p>
<h2>命名</h2>
<p>变量名应由26个大小写字母(<code>A</code>..<code>Z</code>,<code>a</code>..<code>z</code>),10个数字(<code>0</code>..<code>9</code>),和<code>_</code><small>(下划线)</small>组成。避免使用国际化字符(如中文),因为它们不是在任何地方都可以被方便的阅读和理解。不要在命名中使用<code>$</code><small>(美元符号)</small>或者<code></code><small>(反斜杠)</small>。</p>
<p>不要把<code>_</code><small>(下划线)</small>作为变量名的第一个字符。它有时用来表示私有变量,但实际上JavaScript并没提供私有变量的功能。如果私有变量很重要, 那么使用<a href="http://javascript.crockford.com/private.html" included="null"  $>私有成员</a>的形式。应避免使用这种容易让人误解的命名习惯。</p>
<p>大多数的变量名和方法命应以小写字母开头。</p>
<p>必须与<code><a href="http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/" included="null"  $>new</a></code>共同使用的构造函数名应以大写字母开头。当<code>new</code>被省略时JavaScript不会有任何编译错误或运行错误抛出。忘记加<code>new</code>时会让不好的事情发生(比如被当成一般的函数),所以大写构造函数名是我们来尽量避免这种情况发生的唯一办法。</p>
<p>全局变量应该全部大写。(JavaScript没有宏或者常量,所以不会因此造成误会)</p>
<h2>语句</h2>
<h3>简单语句</h3>
<p>每一行最多只包含一条语句。把<code>;</code><small>(分号)</small>放到每条简单语句的结尾处。注意一个函数赋值或对象赋值语句也是赋值语句,应该以分号结尾。</p>
<p>JavaScript可以把任何表达式当作一条语句。这很容易隐藏一些错误,特别是误加分号的错误。只有在赋值和调用时,表达式才应被当作一条单独的语句。</p>
<h3>复合语句</h3>
<p>复合语句是被包含在<code>{ }</code><small>(大括号)</small>的语句序列。</p>
<ul>
    <li>被括起的语句必须多缩进四个空格。
    <li><code>{</code><small>(左大括号)</small>应在复合语句其实行的结尾处。
    <li><code>}</code><small>(右大括号)</small>应与<code>{</code><small>(左大括号)</small>的那一行的开头对齐
    <li>大括号应该在所有复合语句中使用,即使只有一条语句,当它们是控制结构的一部分时, 比如一个<code>if</code>或者<code>for</code>语句。这样做可以避免以后添加语句时造成的错误。</li>
</ul>
<h3>标示</h3>
<p>语句标示是可选的,只有以下语句必须被标示:<code>while</code>, <code>do</code>,<code>for</code>,<code>switch</code>。</p>
<h3><code>return</code> 语句</h3>
<p>一条有返回值的<code>return</code>语句不要使用<code>( )</code><small>(括号)</small>来括住返回值。如果返回表达式,则表达式应与<code>return</code> 关键字在同一行,以避免误加分号错误。</p>
<h3><code>if</code> 语句</h3>
<p><code>if</code>语句应如以下格式:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;if (</code><var>condition</var><code>){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (</code><var>condition</var><code>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (</code><var>condition</var><code>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;} else if (</code><var>condition</var><code>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
<h3><code>for</code> 语句</h3>
<p><code>for</code>语句应如以下格式:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;for (</code><var>initialization</var><code>;</code><var>condition</var><code>; </code><var>update</var><code>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (</code><var>variable</var><code> in </code><var>object</var><code>)if (</code><var>filter</var><code>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
<p>第一种形式的循环用于已经知道相关参数的数组循环。</p>
<p>第二种形式应用于对象中。<var>object</var><code></code>原型中的成员将会被包含在迭代器中。通过预先定义<code>hasOwnProperty</code>方法来区分真正的<var>object</var>成员是个不错方法:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;for (</code><var>variable</var><code>in </code><var>object</var><code>) if (</code><var>object</var><code>.hasOwnProperty(</code><var>variable</var><code>)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
<h3><code>while</code> 语句</h3>
<p><code>while</code>语句应如以下格式:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;while (</code><var>condition</var><code>){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
<h3><code>do</code> 语句</h3>
<p><code>do</code>语句应如以下格式:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;do {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;} while (</code><var>condition</var><code>);</code></p>
<p>不像别的复合语句,<code>do</code>语句总是以<code>;</code><small>(分号)</small>结尾。</p>
<h3><code>switch</code> 语句</h3>
<p><code>switch</code>语句应如以下格式:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;switch (</code><var>expression</var><code>){<br />
&nbsp;&nbsp;&nbsp;&nbsp;case </code><var>expression</var><code>:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><var>statements;</var><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</code></p>
<p>每个 <code>case</code>与<code>switch</code>对齐。这可避免过分缩进。</p>
<p>每一组<var>statements</var>(除了<code>default</code>应以 <code>break</code>,<code>return</code>,或者<code>throw</code>结尾。不要让它顺次往下执行。</p>
<h3><code>try</code> 语句</h3>
<p><code>try</code>语句应如以下格式:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<code>try {</code><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>statements;</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;<code>} catch (</code><var>variable</var><code>){</code><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>statements;</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp; &nbsp;<code>try {</code><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>statements;</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;<code>} catch (</code><var>variable</var><code>){</code><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>statements;</var><br />
&nbsp;&nbsp;<code>&nbsp;} finally {</code><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>statements;</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;<code>}</code></p>
<h3><code>continue</code> 语句</h3>
<p>避免使用<code>continue</code>语句。它很容易使得程序的逻辑过程晦涩难懂。</p>
<h3><code>with</code> 语句</h3>
<p><a href="http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/" included="null"  $>不要使用</a><code>with</code>语句。</p>
<h2>空白</h2>
<p>用空行来将逻辑相关的代码块分割开可以提高程序的可读性。</p>
<p>空格应在以下情况时使用:</p>
<ul>
    <li>跟在<code>(</code><small>(左括号)</small>后面的关键字应被一个空格隔开。</li>
</ul>
<pre>        while (true) {</pre>
<ul>
    <li>函数参数与<code>(</code><small>(左括号)</small>之间不应该有空格。这能帮助区分关键字和函数调用。
    <li>所有的二元操作符,除了<code>.</code><small>(点)</small> 和<code>(</code><small>(左括号)</small>和 <code>[</code><small>(左方括号)</small>应用空格将其与操作数隔开。
    <li>一元操作符与其操作数之间不应有空格,除非操作符是个单词,比如<code>typeof</code>。
    <li>每个在控制部分,比如<code>for</code> 语句中的; <small>(分号)</small>后须跟一个空格。
    <li>每个,<small>(逗号)</small>后应跟一个空格。</li>
</ul>
<h2>另外的建议</h2>
<h3><code>{}</code> 和<code>[]</code></h3>
<p>使用<code>{}</code>代替<code>new Object()</code>。使用<code>[]</code>代替<code>new Array()</code>。</p>
<p>当成员名是一组有序的数字时使用数组来保存数据。当成员名是无规律的字符串或其他时使用对象来保存数据。</p>
<h3><code>,</code><small>(逗号)</small>操作符</h3>
<p>避免使用逗号操作符,除非在特定的<code>for</code> 语句的控制部分。(这不包括那些被用在对象定义,数组定义,<code>var</code>语句,和参数列表中的逗号分隔符。)</p>
<h3>作用域</h3>
<p>在JavaScript中块没有域。只有函数有域。不要使用块,除非在复合语句中。</p>
<h3>赋值表达式</h3>
<p>避免在<code>if</code>和<code>while</code>语句的条件部分进行赋值。</p>
<pre>    if (a = b) {</pre>
<p>是一条正确语句?或者</p>
<pre>    if (a == b) {</pre>
<p>才是对的?避免这种不容易判断对错的结构。</p>
<h3><code>===</code>和<code>!==</code>操作符。</h3>
<p>使用<code>===</code>和<code>!==</code>操作符会相对好点。<code>==</code>和<code>!=</code>操作符会进行类型强制转换。 特别是, 不要将<code>==</code>用于与错值比较( <code>false</code>,<code>null</code>,<code>undefined</code>,<code>&#8220;&#8221;</code>,<code>0</code>,<code>NaN</code>)。</p>
<h3>令人迷惑的加号和减号</h3>
<p>小心在<code>+</code>后紧跟<code>+</code>或<code>++</code>。这种形式很容易仍人迷惑。应插入括号以便于理解。</p>
<pre>    total = subtotal + +myInput.value;</pre>
<p>最好能写成</p>
<pre>    total = subtotal + (+myInput.value);</pre>
<p>这样<code>+ +</code>不会被误认为是<code>++</code>。</p>
<h3><code>eval</code> 是恶魔</h3>
<p><code>eval</code>是JavaScript中最容易被滥用的方法。避免使用它。</p>
<p><code>eval</code>有别名。不要使用<code>Function</code>构造器。不要给<code>setTimeout</code>或者<code>setInterval</code>传递字符串参数。</p>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/265661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-15 09:27 <a href="http://www.blogjava.net/shishaomeng/articles/265661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript onclick return false</title><link>http://www.blogjava.net/shishaomeng/articles/265403.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Tue, 14 Apr 2009 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/265403.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/265403.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/265403.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/265403.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/265403.html</trackback:ping><description><![CDATA[<p>在HTML代码中，无论你在哪里放置了onclick事件，并且返回值为false时，那么该处的默认行为将不会执行。这里的默认行为是指没有Onclick事件时原本的行为。</p>
<p>&nbsp;</p>
<p>举一个例子：</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://dsw.javaeye.com/blog/297834#"><img alt="复制代码" src="http://dsw.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-c">
    <li><span><span>&lt;a&nbsp;href=</span><span class="string">"http://www.nojs.com"</span><span>&nbsp;onclick=</span><span class="string">"doSomething();&nbsp;return&nbsp;false;"</span><span>&gt;Click&nbsp;Me&lt;/a&gt;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">&lt;a href="http://www.nojs.com" onclick="doSomething(); return false;"&gt;Click Me&lt;/a&gt;
</pre>
<p>在上面的例子中，如上面所说点击(click)这个链接，那么动作进行将会截止到doSomething()函数全部完成，而并不会继续跳转到"http://www.nojs.com"(除非IE等浏览器端禁用了JavaScript)。</p>
<p>&nbsp;</p>
<p>为了让上面的例子继续进行下一步，我们可以放置一个confirm函数强迫用户去决定他们是否愿意继续跳转，如果用户选择&#8220;是&#8221;，那么函数返回ture，页面跳转到&#8220;http://www.nojs.com&#8221;。</p>
<p>如下面这个例子：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://dsw.javaeye.com/blog/297834#"><img alt="复制代码" src="http://dsw.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-c">
    <li><span><span>&lt;a&nbsp;href=</span><span class="string">"http://www.nojs.com"</span><span>&nbsp;onclick=</span><span class="string">"return&nbsp;confirm('Are&nbsp;you&nbsp;sure&nbsp;you&nbsp;want&nbsp;to&nbsp;do&nbsp;that?');"</span><span>&gt;Click&nbsp;Me&lt;/a&gt;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">&lt;a href="http://www.nojs.com" onclick="return confirm('Are you sure you want to do that?');"&gt;Click Me&lt;/a&gt;</pre>
<p>&nbsp;</p>
<p>最后还有个小技巧，当我用AJAX或触发一个div时，出现了一个让我恼火的情况，我点击了链接并且click事件已经完成，虽然链接没有跳转但还是变成了还是被选中过的颜色。虽然这无关紧要，但还是有一个办法可以不让这个发生，简单的说，可以模糊(blur)这个焦点让他看上去不是焦点</p>
<p>&nbsp;</p>
<p>来看一个简单的例子：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://dsw.javaeye.com/blog/297834#"><img alt="复制代码" src="http://dsw.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-c">
    <li><span><span>&lt;a&nbsp;href=</span><span class="string">""</span><span>&nbsp;id=</span><span class="string">"bjd"</span><span>&nbsp;onclick=</span><span class="string">"Element.toggle('MyDiv');&nbsp;$('bjd').blur();&nbsp;return&nbsp;false;"</span><span>&gt;Toggle&nbsp;MyDiv&lt;/a&gt;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">&lt;a href="" id="bjd" onclick="Element.toggle('MyDiv'); $('bjd').blur(); return false;"&gt;Toggle MyDiv&lt;/a&gt;
</pre>
<p>&nbsp;在上面这个例子里使用了prototype，如果你不了解prototype，你可以访问这个链接来了解一下<a href="http://www.bradino.com/javascript/prototype-javascript-framework/">Prototype</a> </p>
<p>&nbsp;</p>
<p>原文地址 </p>
<p><a href="http://www.bradino.com/javascript/onclick-return-false/">http://www.bradino.com/javascript/onclick-return-false/</a> </p>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/265403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-14 08:55 <a href="http://www.blogjava.net/shishaomeng/articles/265403.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>