href="#" vs href="javascript:void(0)"

form Ajax中国

开发的时候有时需要用link(<a>)来触发一些javascript事件,所以常常可以看到如下的代码:

<a href="javascript:void(0)" xxxxx="doSomething();return false;">Link</a>
这是一个曾经被多次讨论过的问题,长期以来,我也一直是这样写的。读了 a href=”javascript:void(0);” — avoid the void 之后,我认同了作者的意见。下面的写法确实更合理:

<a href="#" xxxxx="doSomething();return false;">Link</a>
或者
<script type="javascript">function doSomething() {  //doSomething  return false;}</script><a href="#" xxxxx="return doSomething();">Link</a>
以往大家不使用"#"的问题是,这将导致点击链接时页面跳回页面顶部,但通过 return false 语句将使得浏览器忽略链接的默认动作,从而避免了此问题。

youngpup 更有意思,他在How to Create Pop-Up Windows 中言辞激烈的倡导大家永远永远永远不要使用 javascript: 伪协议:

Never, ever, ever use the javascript: pseudo-protocol for anything, ever ever ever ever again. Please. Pretty please.
他的解决方案是:

<a href="http://google.com/"  xxxxx="window.open(this.href, 'popupwindow',   'width=400,height=300,scrollbars,resizable');   return false;"a>
这样的好处就是可以保存到书签或者收藏夹,可以左键单击,也可以右键使用!

 FROM http://www.cnblogs.com/jinweijie/archive/2006/11/20/566657.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值