我的导航栏侧面和水平面上的项目很少。每个项目保存不同页面的链接。我读过很多关于href属性的文章。由于href不是必需的,因此在HTML5中应该使用什么有很多不同的意见。如果可能的话,我想隐藏链接。其中一个选项是使用onClick函数。关于是否应该有javascript或#符号也存在很大争议。例如:
选项1
<a href="#" onclick="someFunction(e)"></a>
或选项2
<a href="javascript:void(0);" onclick="someFunction(e)">
我想知道这是否是解决此问题的最佳方法。我也看到了JQuery涉及的几个选项,但我不确定这是否是最好的选择。如果有人可以帮忙解决这个问题,请告诉我。我只想使用经过充分测试的产品,这将是一个长期的解决方案。提前谢谢。
答案 0 :(得分:2)
如果您实际链接到另一个带有URL的HTML页面...则使用链接元素和href。
如果您在某个框架中并更改路线或视图 - 或触发某些事件 - 则取决于您。如果需要,您可以使用按钮或任何元素或<a>
,但您可以确保阻止链接的默认行为。
听起来你的问题不在href或none之间 - 而是在链接之间或其他方面。
常规链接
<a href='http://sheriffderek.consulting' target='sheriff'>link</a>
非JavaScript网站的后备链接? (除非你是公共图书馆或其他什么,否则2017年不太可能)......
<a href='http://sheriffderek.consulting' onclick='someFunction(e)'>js view trigger with fallback link</a>
另一个元素
<button onclick="someFunction(e)">button</button>
此外 - 它取决于框架。我相信Angular只是说要使用链接,但不要使用href。
答案 1 :(得分:1)
如今,我看到大多数开发者更喜欢&#34;#&#34;到&#34; javascript:&#34;。
如果我不得不使用onclick,我个人会这样做:
<a href="#" onclick="event.preventDefault(); someFunction();">Link</a>
另一个例子:
<a href="#" onclick="someFunction(event);">Link</a>
<script>
someFunction = function(event) {
event.preventDefault();
// do the work
}
</script>
要回答您的一个问题,在页面中显示链接不应该是一个安全问题。必须保护每个服务器请求免受未经授权的呼叫,URL混淆几乎无济于事。
答案 2 :(得分:1)
用于重定向页面(或调用事件)的方法实际上取决于您尝试从操作和整体用户体验中实现的目标。有些情况下,href更合适:
按钮的onClick事件可以编码以实现相同的效果,但路径不同。也许代码会更高效,或者通过按钮点击事件改善用户体验,而不仅仅是href。
要记住的两个主要事项是用户体验和设计,然后是页面的安全性。始终确保任何链接/重定向永远不会危及页面的安全性。这可能会决定您需要使用的方法。
有关其他信息,您可以先阅读以下链接,然后继续浏览网站的其余堆栈交换用户体验部分:
我希望它有所帮助。