当前位置: 首页 > 面试题库 >

JavaScript链接使用哪个“ href”值,“#”或“ javascript:void(0)”?

毕嘉
2023-03-14
问题内容

以下是构建链接的两种方法,其唯一目的是运行JavaScript代码。在功能,页面加载速度,验证目的等方面哪个更好?

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

要么

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

问题答案:

我用javascript:void(0)

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

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

但是后来他们忘记return doSomething()onclick中使用,而只使用doSomething()

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

第三个原因是在某些情况下onclick会动态分配事件属性。我更喜欢能够调用一个函数或动态分配它,而不必专门为一种附加方法或另一种附加方法编写函数。因此,我的onclickHTML标记(或其他内容)如下所示:

onclick="someFunc.call(this)"

要么

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

使用javascript:void(0)可以避免上述所有麻烦,而且我还没有发现任何不利方面的例子。

因此,如果您是一个孤独的开发人员,则可以清楚地做出自己的选择,但是如果您是团队合作,则必须声明以下两种情况:

使用href="#",请确保onclick始终return false;在最后包含任何被调用的函数都不会引发错误,并且如果您将函数动态地附加到该onclick属性,请确保它不会抛出错误也返回false。

要么

采用href="javascript:void(0)"

第二种显然更容易沟通。



 类似资料:
  • 问题内容: 以下是构建链接的两种方法,其唯一目的是运行JavaScript代码。在功能,页面加载速度,验证目的等方面哪个更好? 要么 问题答案: 老实说,我都不建议。我会为该行为使用程式化。 这样,你可以分配onclick。我还建议通过脚本进行绑定,而不要使用标签上的属性。唯一的难题是无法禁用的较旧IE中的伪3d文本效果。 如果必须使用A元素,请使用;已经提到的原因。 万一你的onclick事件失

  • 问题内容: 我有一个标签,在某些情况下,我希望此标签被完全禁用。 注释中的代码(这是链接的生成方式) 问题答案: 当您不希望用户点击时重定向时,请尝试此操作

  • 问题内容: 我有以下HTML代码: 如何将 Home , Contact 和 Sitemap 值设置为链接?我使用了以下代码,但正如我预期的那样,它无法正常工作: 问题答案: 在这个时代,如果您想使用下拉菜单,可以使用很多可以说更好的方法来实现。此答案是对直接问题的直接答案,但我不主张将这种方法用于面向公众的网站。

  • 我有一个html链接

  • 问题内容: 如何使用JavaScript 将属性动态添加到链接? 我基本上想动态添加一个属性(即,当用户单击网站上的特定图像时)。 来自: 我需要去: 问题答案:

  • 问题内容: 这是我要在HTML / CSS中完成的工作: 我有不同高度和宽度的图像,但是它们都在180x235以下。所以我要做的是创建一个with 及其所有。我已经成功地做到了这一点,但是现在我仍然停留在如何正确地href链接整个链接的问题上。 这是我的代码: 请注意,为了方便复制粘贴到此处,样式代码是内联的。 我读到某个地方,我可以简单地在代码顶部添加另一个父div,然后在其中添加href。但是