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标签.(实现方法以后再写,这里暂不说明)


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流