JS a标签的链接执行脚本如何使用onclick

Jiutocrx 2016-10-06

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标签。

相关推荐