<a href="JavaScript:js_method();"</a>
但是这种⽅法在传递this等参数的时候很容易出问题,⽽且javascript:协议作为a的href属性的时候不仅会导致不必要的触发。
window.onbeforeunload事件,在IE⾥⾯更会使gif动画图⽚停⽌播放。W3C标准不推荐在href⾥⾯执⾏javascript语句。<a href="javascript:void(0);" onclick="js_method()"</a>
<a href="javascript:;" onclick="js_method()"</a>
这种⽅法是很多⽹站最常⽤的⽅法,也是最周全的⽅法,onclick⽅法负责执⾏js函数,⽽void是⼀个操作符,void(0)返回undefined,地址不发⽣跳转。⽽且这种⽅法不会像第⼀种⽅法⼀样直接将js⽅法暴露在浏览器的状态栏,这种⽅法可以阻⽌默认⾏为。<a href="#" onclick="js_method()"</a>
这种⽅法也是⽹上很常见的代码,#是标签内置的⼀个⽅法,代表top的作⽤。所以⽤这种⽅法点击后⽹页会返回到页⾯的最顶端。<a href="#" onclick="js_method();return false;"</a>
这种⽅法点击执⾏了js函数后return false,页⾯不发⽣跳转,执⾏后还是在页⾯的当前位置。
绑定事件需要注意的事项:
- 链接的 onclick 事件被先执⾏,其次是 href 属性下的动作(页⾯跳转,或 javascript 伪链接);
- 如果在链接的 href 属性中调⽤⼀个有返回值的函数,当前页⾯的内容将被此函数的返回值代替;
- 假设链接中同时存在 href 与 onclick,如果想让 href 属性下的动作不执⾏,我们需要阻⽌默认⾏为。