我应该在点击而不是href上使用吗?

时间:2017-05-21 18:23:40

标签: javascript jquery html html5 href

我的导航栏侧面和水平面上的项目很少。每个项目保存不同页面的链接。我读过很多关于href属性的文章。由于href不是必需的,因此在HTML5中应该使用什么有很多不同的意见。如果可能的话,我想隐藏链接。其中一个选项是使用onClick函数。关于是否应该有javascript或#符号也存在很大争议。例如:

选项1

<a href="#" onclick="someFunction(e)"></a>

或选项2

<a href="javascript:void(0);" onclick="someFunction(e)">

我想知道这是否是解决此问题的最佳方法。我也看到了JQuery涉及的几个选项,但我不确定这是否是最好的选择。如果有人可以帮忙解决这个问题,请告诉我。我只想使用经过充分测试的产品,这将是一个长期的解决方案。提前谢谢。

3 个答案:

答案 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。

要记住的两个主要事项是用户体验和设计,然后是页面的安全性。始终确保任何链接/重定向永远不会危及页面的安全性。这可能会决定您需要使用的方法。

有关其他信息,您可以先阅读以下链接,然后继续浏览网站的其余堆栈交换用户体验部分:

我希望它有所帮助。

Action in href or onClick event?