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

函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>

or

函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>


当前回答

我通常会去

<a href="javascript:;" onclick="yourFunction()">Link description</a>

它比javascript:void(0)短,并且做了同样的事情。

其他回答

•Javascript:无效(0);为空值[Notassigned],这意味着浏览器将返回null,单击DOM,窗口将返回false。•javascript中的“#”不在DOM或Window之后。这意味着锚href内的“#”符号是LINK。链接到相同的当前方向。

如果您使用的是<a>元素,请使用以下命令:

<a href="javascript:myJSFunc();" />myLink</a>

就我个人而言,我会在稍后使用JavaScript附加一个事件处理程序(使用attachEvent或addEventListener,或者也可以将您最喜欢的JavaScript框架放在这里)。

我基本上是在用渐进式增强来解释这篇实用文章。简单的答案是,您永远不会使用javascript:void(0);或#,除非您的用户界面已经推断JavaScript已启用,在这种情况下,您应该使用JavaScript:void(0);。此外,不要使用span作为链接,因为这在语义上是错误的。

在应用程序中使用SEO友好的URL路由,例如/Home/Action/Parameters也是一种很好的做法。如果你有一个链接到一个没有JavaScript的页面,你可以在之后增强体验。使用指向工作页面的真实链接,然后添加联机事件以增强演示。

这是一个示例。Home/ChangePicture是一个指向页面上的表单的工作链接,该表单带有用户界面和标准HTML提交按钮,但它被注入到带有jQueryUI按钮的模态对话框中看起来更好。无论哪种方式都有效,这取决于浏览器,满足移动优先开发。

<p><a href="Home/ChangePicture" onclick="return ChangePicture_onClick();" title="Change Picture">Change Picture</a></p>

<script type="text/javascript">
    function ChangePicture_onClick() {
        $.get('Home/ChangePicture',
              function (htmlResult) {
                  $("#ModalViewDiv").remove(); //Prevent duplicate dialogs
                  $("#modalContainer").append(htmlResult);
                  $("#ModalViewDiv").dialog({
                      width: 400,
                      modal: true,
                      buttons: {
                          "Upload": function () {
                              if(!ValidateUpload()) return false;
                              $("#ModalViewDiv").find("form").submit();
                          },
                          Cancel: function () { $(this).dialog("close"); }
                      },
                      close: function () { }
                  });
              }
        );
        return false;
    }
</script>

也不

如果您可以有一个实际的URL,请将其用作HREF。如果有人中间点击你的链接打开一个新的标签,或者他们禁用了JavaScript,onclick就不会启动。

如果这是不可能的,那么您至少应该使用JavaScript和适当的单击事件处理程序将锚标记注入到文档中。

我意识到这并不总是可能的,但在我看来,在开发任何公共网站时都应该努力做到这一点。

查看Unobrusive JavaScript和Progressive增强(两个维基百科)。

肯定hash(#)更好,因为在JavaScript中它是一个伪方案:

污染历史实例化引擎的新副本在全局范围内运行,不尊重事件系统。

当然,使用onclick处理程序防止默认操作的“#”更好。此外,唯一目的是运行JavaScript的链接并不是真正的“链接”,除非当出现问题时,您将用户发送到页面上某个合理的锚点(只需#将发送到顶部)。您可以简单地使用样式表模拟链接的外观,而完全不用考虑href。

此外,关于牛神的建议,特别是:。。。href=“javascript_required.html”onclick=“…这是一种很好的方法,但它没有区分“禁用javascript”和“onclick失败”场景。