本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2021-01-31 17:04     阅读(1056)     评论(0)     点赞(25)     收藏(0)


以下是构建链接的两种方法,其唯一目的是运行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会动态分配事件属性。我更希望能够调用一个函数或动态分配它,而不必专门针对一种附加方法或另一种附加方法对函数进行编码。因此,我onclick(或任何形式)的HTML标记如下所示:

onclick="someFunc.call(this)"

要么

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

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

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

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

要么

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

第二种显然更容易沟通。




所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/110/b6f8c2b1a464134bcb0b/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)