为了账号安全,请及时绑定邮箱和手机立即绑定

将JavaScript代码放入<a>的不同方法之间有什么区别?

将JavaScript代码放入<a>的不同方法之间有什么区别?

我已经看到了以下将JavaScript代码放入<a>标记中的方法:function DoSomething() { ... return false; }<a href="javascript:;" onClick="return DoSomething();">link</a><a href="javascript:DoSomething();">link</a><a href="javascript:void(0);" onClick="return DoSomething();">link</a><a href="#" onClick="return DoSomething();">link</a>我了解尝试放置有效URL而不是仅放置JavaScript代码的想法,以防万一用户未启用JavaScript。但是出于讨论的目的,我需要假定JavaScript已启用(没有JavaScript,它们将无法登录)。我个人喜欢选项2,因为它使您可以查看将要运行的内容–在调试将参数传递给函数的位置时特别有用。我已经使用了很多,还没有发现浏览器问题。我读过人们推荐4,因为它给用户提供了一个真正的链接,但是#并不是“真实的”。绝对不会到哪里去。当您知道用户已启用JavaScript时,是否存在不支持或非常糟糕的应用?
查看完整描述

4 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

我非常喜欢Matt Kruse的Javascript Best Practices文章。他在其中指出,使用该href部分执行JavaScript代码是一个坏主意。即使您已经声明用户必须启用JavaScript,但也没有理由没有一个简单的HTML页面,href如果有人在登录后碰巧关闭了JavaScript ,则所有JavaScript链接都可以指向其部分。我强烈建议您仍然允许这种备用机制。这样的事情将遵循“最佳实践”并实现您的目标:


<a href="javascript_required.html" onclick="doSomething(); return false;">go</a>


查看完整回答
反对 回复 2019-10-06
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

可以使用addEventListener/ 时为什么要这样做attachEvent?如果没有href-equivalent,则不要使用和<a><button>并相应地设置其样式。


查看完整回答
反对 回复 2019-10-06
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

您忘记了另一种方法:


5: <a href="#" id="myLink">Link</a>

使用JavaScript代码:


document.getElementById('myLink').onclick = function() {

    // Do stuff.

};

我无法评论哪个选项提供了最好的支持,或者哪个语义上是最好的,但是我只是说我更喜欢这种样式,因为它可以将您的内容与JavaScript代码分开。它将所有JavaScript代码保持在一起,这很容易维护(特别是如果您将其应用到许多链接上),甚至可以将其放在一个外部文件中,然后将其打包以减小文件大小并由客户端浏览器缓存。


查看完整回答
反对 回复 2019-10-06
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

<a href="#" onClick="DoSomething(); return false;">link</a>

我将这样做,或者:


<a href="#" id = "Link">link</a>

(document.getElementById("Link")).onclick = function() {

    DoSomething();

    return false;

};

视情况而定。对于较大的应用程序,第二个最好,因为这样可以合并您的事件代码。


查看完整回答
反对 回复 2019-10-06
  • 4 回答
  • 0 关注
  • 388 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信