我应该为 JavaScript 链接使用哪个“href”值,“#”还是“javascript:void(0)”?

2024-01-09

以下是构建仅用于运行 JavaScript 代码的链接的两种方法。就功能、页面加载速度、验证目的等而言,哪个更好?

function myJsFunc() {
    alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>

or

function myJsFunc() {
    alert("myJsFunc");
}
 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>

I use javascript:void(0).

三个原因。鼓励使用#在开发团队中不可避免地会导致一些人使用这样调用的函数的返回值:

function doSomething() {
    //Some code
    return false;
}

但后来他们忘记使用return doSomething()在 onclick 中,只需使用doSomething().

避免的第二个原因#那是最后的return false;如果被调用的函数抛出错误,则不会执行。因此,开发人员还必须记住在被调用函数中适当处理任何错误。

第三个原因是,在某些情况下onclick事件属性是动态分配的。我更喜欢能够动态调用函数或分配它,而不必专门为一种或另一种附件方法编写函数代码。因此我的onclick(或任何东西)在 HTML 标记中看起来像这样:

onclick="someFunc.call(this)"

OR

onclick="someFunc.apply(this, arguments)"

Using javascript:void(0)避免了上述所有令人头痛的问题,而且我还没有发现任何缺点的例子。

因此,如果您是一个单独的开发人员,那么您显然可以做出自己的选择,但如果您作为一个团队工作,则必须声明:

Use href="#", 确保onclick总是包含return false;最后,任何被调用的函数都不会抛出错误,并且如果将函数动态附加到onclick属性确保它返回并且不抛出错误false.

OR

Use href="javascript:void(0)"

第二个显然更容易沟通。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该为 JavaScript 链接使用哪个“href”值,“#”还是“javascript:void(0)”? 的相关文章

随机推荐

  • 我可以在 Clojure 记录中创建可变状态吗?

    我正在考虑使用 Clojure 记录来映射到程序中不断变化的实体 它们是可变的吗 或者您是否需要在记录中使用额外的参考 我对此有点困惑 非常值得一看Rich Hickey 关于身份和状态的精彩视频 http www infoq com pr
  • 返回的日期格式为 mm/dd/yyyy hh:mm:ss AM/PM

    我对 sql 是个新手 我的公司只是让我很投入并说去做 因此 非常感谢任何帮助 我试图以 mm dd yyyy hh mm ss AM PM 的格式获取日期 例如 09 26 2014 11 04 54 AM 的日期 我尝试过使用代码 Se
  • 将此 pdf 保存在 ionic 上的缓存/本地存储中

    哈给大家 我按照本教程使用 pdfmake 生成的 pdf 创建模式视图 http gonehybrid com how to create and display a pdf file in your ionic app http gon
  • PHP 搜索多维数组中的值并获取相应的元素值[重复]

    这个问题在这里已经有答案了 我正在使用 PHP 我有一个多维数组 我需要搜索它以查看 键 的值是否存在 如果存在 则获取 字段 的值 这是我的数组 Array 0 gt Array key gt 31 field gt CONSTRUCTN
  • Owlready2动态类生成

    我正在尝试为 owlready2 本体动态创建一个类 文档建议使用以下代码行 NewClass types new class NewClassName SuperClass kwds namespace my ontology 就我而言
  • Laravel 4 - 读取配置文件

    如何从 laravel 读取配置文件 例如数据库连接 app config database php 我想要来自配置的 mysql 数据 对于一个包 你可以这样做 return Config get package group option
  • 如何防止GDB单步执行每一个函数

    我的 GDB 调试器会自动进入大多数函数 特别是我的外部库 标准库 这很烦人 因为我知道这些库比我的代码写得更好 如何才能阻止 GDB 这样做呢 有两种方法可以得到你想要的东西 一是使用next而不是step step将进入函数调用 但是n
  • Three.js计算充满屏幕所需的物体距离

    我见过很多关于如何缩放相机以使物体充满屏幕的问题 但我正在尝试移动物体以充满屏幕 我一直在尝试使用原始照片像素大小进行类似的操作 并且这些对象已缩放 var dist object originalSize height gt window
  • Arquillian:添加 beans.xml 会导致“ArquillianServletRunner 未找到”

    我正在使用 Arquillian 1 在 Eclipse 2 IDE 内的嵌入式 glassfish 环境中测试我的 J2EE App package test java import org jboss arquillian contai
  • hadoop中的全局变量

    我的程序遵循迭代映射 归约方法 如果满足某些条件 则需要停止 无论如何 我是否可以设置一个可以分布在所有映射 归约任务中的全局变量 并检查全局变量是否达到完成条件 像这样的东西 While Condition true Configurat
  • 在特定时间启动和停止视频 Windows Media Player

    我正在使用 Windows Media Player 对象在我的 C winforms 项目中播放视频 VideoPlayer URL C test avi 我的 test avi 持续时间是 12 秒 我想播放 4 到 8 秒 我可以从
  • 如何将admob广告添加到Xamarin IOS

    我正在尝试将 Admob 广告添加到 Xamarin IOS 但我无法找到实现此目标的方法 我已经搜索过互联网 但找不到解决方案 Google Admob 可在 Xamarin iOS 中使用 1 安装包Xamarin Firebase i
  • 在我的服务器上运行 node.js 脚本需要什么?

    我有一个标准的 Apache 服务器 我需要什么特殊的东西才能在服务器端运行 node js 脚本 http socket io 吗 Node js 提供了自己的 HTTP 服务器 因此不需要 Apache 如果您希望在同一台服务器上运行
  • 访问其他类变量

    我正在开发乒乓球游戏 因为我是编程新手 所以我不知道如何访问另一个类变量 我有单独的班级 绿色和蓝色的球拍 一个球和游戏 1 cs 我用 bool movingUp movingLeft 控制球的运动 它从屏幕边框反弹 但我不知道如何让它与
  • 在 Xcode 控制台中查看 Unicode 字符?

    当我这样做时 我需要在 Xcode 控制台中看到一些带有 Unicode 字符的字符串NSLog some unicode characters Eg abc u0001xyz u0002pqr 但是 Xcode 控制台只显示abcxyzp
  • 无法使用 Ansible 获取 .bashrc

    我可以 ssh 到远程主机并执行source home username bashrc 一切正常 但是如果我这样做 name source bashrc sudo no action command source home username
  • 无法在 iPhone 上安装配置文件(iOS 8 beta 4 / Xcode 6 Beta 4)

    我无法在 OS X Yosemite dev Preview 4 上运行 iOS beta 4 和 Xcode beta 4 的 iPhone 5S 上安装任何 iOS 开发者发行版或开发者链接的配置文件 我已经通过恢复重新安装了 iOS
  • 旋转 Pandas DataFrame 的列名称

    我正在尝试用 pandas 制作格式良好的表格 我的一些专栏名称太长了 这些列的单元格很大 导致整个表格混乱 在我的示例中 是否可以在显示时旋转列名称 data Way too long of a column to be reasonab
  • 将日期时间与未指定和 UTC 类型进行比较

    我有2个DateTime values date1 date2 比较这 2 个日期时 这 2 个日期相等 if DateTime Compare date1 date2 0 有人可以解释为什么吗 对我来说有点奇怪 当将 date1 未指定类
  • 我应该为 JavaScript 链接使用哪个“href”值,“#”还是“javascript:void(0)”?

    以下是构建仅用于运行 JavaScript 代码的链接的两种方法 就功能 页面加载速度 验证目的等而言 哪个更好 function myJsFunc alert myJsFunc a href Run JavaScript Code a o