您的位置:首页 > Web前端 > JavaScript

看到很多人都写的是javascript:void(0);,新浪微博也是,为什么不能直接写成javascript:;?

2014-05-30 07:36 253 查看
北风网解答:

对于void的说明:

void 运算符对任何值返回 undefined。该运算符通常用于避免输出不应该输出的值,例如,从 HTML 的 <a> 元素调用 JavaScript 函数时。要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果。例如:

<a href="javascript:window.open('about:blank')">Click me</a>

这使 window.open() 调用返回 undefined,它不是有效值,不会显示在浏览器窗口中。

提示:请记住,没有返回值的函数真正返回的都是 undefined。

针对楼主的问题,借用上面stackoverflow链接中的代码:

<a onclick="fn()">Does not appear as a link, because there's no href</a>

<a href="javascript:void(0)" onclick="fn()">fn is called</a>

<a href="javascript:undefined" onclick="fn()">fn is called</a>

<a href="javascript:" onclick="fn()">fn is called too!</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐