日期:2014-05-16  浏览次数:20372 次

javascript:void(0);

我们希望用户点击 <a> 元素时阻止它的默认行为。此时我们可以用很多不同的方法来处理。例如:

?

?

<a href="#">Click Me</a>
<a href="#" onclick="return false">Click Me</a>
<a href="javascript:void(0);">Click Me</a>
<a href="javascript:void 0;">Click Me</a>
<a href="javascript:;">Click Me</a>
<a href="javascript:">Click Me</a>

?

?

第一种方法最简单,但是它会导致点击时页面滚动到页首。因此第二种方法利用?return false?语句阻止默认行为的执行。后面几种方法利用?javascript:?URI 来达到页面不跳转的效果:按照规定,只要 javascript 代码执行的结果不为?undefined,则页面不跳转。因此第三、四种方法利用了?void?操作符的返回值是?undefined?的特点,而最后两种方法直接利用空语句的返回值为?undefined的原理。

但是后面四种方法在 IE 中使用可能会有副作用:在 IE 中点击该链接会触发 window.onbeforeunload 事件(即使 IE9 也是这样的)。因此,如果你绑定了这个事件的处理程序,需要考虑这个问题。

参考资料:

1.?void?

2.?href=“javascript:” vs. href=“javascript:void(0)”

?

今天我采用的方法是第二种,给onclick添加return false。

?

添加第七种写法:

<a href="###">Click Me</a>

这种写法不会像第一种写法那样,跳转到页面的顶部。

1 楼 hand515 2013-10-17  
href="###"
2 楼 wolf199103 2013-10-17  
恩,是的。这也是一种方法。谢谢。但是地址栏中多了###,就感觉怪怪的。