我已经看到以下将JavaScript代码放入<a>标签中的方法:
<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时,是否存在不支持或非常糟糕的应用?
相关问题:Href for JavaScript链接:“#”还是“javascript:void(0)”?。
我非常喜欢Matt Kruse的JavascriptBestPractices文章。他在其中指出,使用该href部分执行JavaScript代码是一个坏主意。即使您已声明用户必须启用JavaScript,但也没有理由没有一个简单的HTML页面,href如果有人在登录后碰巧关闭了JavaScript,则所有JavaScript链接都可以指向其相应部分。我强烈建议您仍然允许这种备用机制。这样的事情将遵循“最佳实践”并实现您的目标:
href
<a href="javascript_required.html" onclick="doSomething(); return false;">go</a>