A链接执行脚本使用onclick的原因

A链接不要把执行函数放在href里面执行,这是有原因的。

1、href="javascript:js_method();"

这是我们最常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript语句。

2、href="javascript:void(0);" onclick="js_method()"

这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行JS函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。而且这种方法不会像第一种方法一样直接将js方法暴露在浏览器的状态栏,,但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

3、href="javascript:;" onclick="js_method()"

这种方法跟跟第2种类似,区别只是执行了一条空的js代码。Href与onclick区别是每个href里的javascript方法都用try、catch包围。

4、href="#" onclick="js_method()"

这种方法也是网上很常见的代码,#是标签内置的一个方法, #包含了一个位置信息默认的锚是#top 也就是网页的上端 。所以用这种方法点击后网页后返回到页面的最顶端。

5、href="#" onclick="js_method();return false;"

用a标签,onclick属性或onclick事件中返回false

<a>这个标签的执行顺序应该是先执行onclick    的脚本,最后才进行href参数指定页面的跳转。在onclick中返回false,就可以中止<a>标签的工作流程,也就是不让页面跳转到href参数指定的页面.这种方法点击执行了js函数后return false,页面不发生跳转,执行后还是在页面的当前位置。(推荐使用)

6.不用a标签,设定css或用js来表现,样式类似a标签.(实现方法以后再写,这里暂不说明)

原创文章:A链接执行脚本使用onclick的原因 ,未经许可,禁止转载,©版权所有
原文出处:前端开发博客 (http://caibaojian.com/a-onclick.html)
评论已关闭。