【问题标题】:Why use javascript:void(0) instead of # in href? [duplicate]为什么在 href 中使用 javascript:void(0) 而不是 #? [复制]
【发布时间】:2014-01-07 17:41:00
【问题描述】:

我可以在 html 页面上看到很多 <a href="javascript:void(0);">。从我读过它返回undefined 什么都不做。这与<href="#">有何不同

【问题讨论】:

  • # 跳转到页面顶部。
  • 现代浏览器(如 Firefox 和 chrome)中的#links。这会导致页面在页面中查找可用链接(如果不可用,则跳转到顶部)并滚动到该区域。但 Void 没有做任何动作
  • 与此相关的另一个问题:在 中不包含 href 属性怎么样?例如

标签: javascript


【解决方案1】:

href="javascript:void(0); 适用于您希望它什么都不做但仍将其视为链接的情况。 (蓝色和下划线)。

就像:javascript:return undefined;

为什么?

因为有人可能会这样做:undefined=function (){}

# - 是一个将您带到页面顶部的锚点。

【讨论】:

    【解决方案2】:
    <a href="#">link</a>
    

    将#添加到浏览器url并跳转到页面顶部。

    <a href="javascript:void(0);">link</a>
    

    只是“忽略”链接点击。

    <a href="#" onclick="return false;">link</a>
    

    也忽略了 href。

    不要忘记,在某些情况下,javascript 可能会被禁用(非常罕见)。

    【讨论】:

    • 补充:void 0 本质上是undefined - 这就是为什么浏览器什么都不做。
    • 可能像href="#_" 这样的东西也应该避免需要onclick="return false;",恕我直言,这是突兀的!
    【解决方案3】:

    # 可能会跳转到页面中的不同位置。另外,它会修改 URL

    【讨论】:

    • 修改url可以,但是跳转不行。在这里,如果只是“#”,那么跳转到页面顶部
    • 嗯?我很困惑,你的评论有点不一致。你说跳转不好,然后跳转到页面顶部。没看懂
    • 这就是我们使用 不会跳转的 javascript:void(0) 的原因
    • 伙计,你失去了情节......看起来你正在谈论不同的话题
    猜你喜欢
    • 2011-07-11
    • 2011-04-05
    • 2011-10-21
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多