【问题标题】:Why use 'href="javascript:void(0);"' instead of something more user friendly?为什么使用 'href="javascript:void(0);"' 而不是更用户友好的东西?
【发布时间】:2011-04-05 11:12:33
【问题描述】:

我是网页设计和 javascript 的新手,我不明白为什么网页设计师经常使用下面的 void(0) 语法:

 <a onclick="this.blur();return false;" href="javascript:void(0);" class="btn">

既然这实际上显示在浏览器的左下角,为什么不想办法让它对用户更友好呢?也许是因为设计师没有时间做这种 UI 调整。

作为上述语法的替代方案,您会提出哪些对最终用户更有帮助的建议?

【问题讨论】:

    标签: javascript user-interface onclick void


    【解决方案1】:

    理想的解决方案是build on things that work

    本文讨论了利用 Yahoo 用户界面库 JavaScript 库来改进 JavaScript 模拟交互事件的可访问性的渐进增强。

    引用:克里斯蒂安·海尔曼

    【讨论】:

    • 同意,但链接的外部内容的摘要可能会有所帮助。
    【解决方案2】:

    如果只是对最终用户的帮助,那么这可能有用吗?

    <a onclick="this.blur();return false;" href="#Click to hide" class="btn">
    

    因为你无论如何都返回 false 它实际上可以包含任何东西

    <a onclick="this.blur();return false;" href="Click to hide" class="btn">
    

    但是,我认为这样做的原因是,如果您禁用了 javascript,它实际上将没有任何效果,而不是在那里编写其他内容(第一个示例将更改 url 的 hash/anchor-part ,第二个可能会导致错误)。无论哪种方式,它们仍然看起来很有趣(以原始网址开头)。

    再一次,如果这件事仅由于 javascript 而可见,我会说继续并假设 javascript 可用。虽然我仍然会在安全方面犯错并使用哈希...... :)

    编辑
    我刚刚意识到并非所有浏览器都在状态栏中显示'#'部分的href(是否有任何浏览器这样做?),所以如果你不使用锚,我会使用javascript:void(0);或简单的#对于任何东西,并将标题属性设置为描述性的东西。

    编辑
    我觉得我有点太快了......我认为javascript:void确实是为了避免产生任何影响。但是,更好的解决方案是根本不使用a-tags(我通常只是将 onclick 拍到任何东西上,实际上我通常使用 jquery,然后将其添加到某些类或 ID)。

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 2011-07-11
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 2014-02-12
      相关资源
      最近更新 更多