我应该使用点击而不是 href 吗?
Should I use on click instead of href?
我的导航栏侧面和水平方向上的项目很少。每个项目都包含不同页面的 link。我读过几篇关于 href 属性的文章。对于应该使用什么有很多不同的意见,特别是在 HTML5 中,因为 href 不是必需的。如果可能的话,我想隐藏 link。其中一种选择是使用 onClick 函数。关于是否应该有 javascript 或 # 符号也有很大的争论。例如:
选项 1
<a href="#" onclick="someFunction(e)"></a>
或选项 2
<a href="javascript:void(0);" onclick="someFunction(e)">
我想知道这是否是解决此问题的最佳方法。我还看到很少有涉及 JQuery 的选项,但我不确定这是否是最佳选择。如果有人可以提供帮助,请告诉我。我只想使用经过良好测试的东西,这将是一个长期的解决方案。提前致谢。
如果您实际上是 link 使用 URL... 访问另一个 HTML 页面,则使用 link 元素和 href。
如果您在某个框架中并更改路线或视图 - 或者触发某些事件 - 这取决于您。如果需要,您可以使用按钮或任何元素或 <a>
,但您必须确保防止 link.
的默认行为
听起来你的问题不在 href 或 none 之间 - 但在 link 或其他东西之间。
常规link
<a href='http://sheriffderek.consulting' target='sheriff'>link</a>
非javascript 网站的后备link? (不太可能在 2017 年除非你是 public 图书馆之类的)...
<a href='http://sheriffderek.consulting' onclick='someFunction(e)'>js view trigger with fallback link</a>
另一个元素
<button onclick="someFunction(e)">button</button>
此外 - 这取决于框架。我相信 Angular 只是说要使用 link 但不要使用 href。
如今,我看到大多数开发人员更喜欢“#”而不是 "javascript:"。
如果我必须使用 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混淆几乎毫无帮助。
您用于重定向页面(或调用事件)的方法实际上取决于您尝试通过该操作实现的目标和整体用户体验。有些情况下 href 更合适:
- 图像也是 link
- 用作 link
的单词或短语
- 您想要向用户显示的实际 link
可以对按钮的 onClick 事件进行编码,以实现相同的效果,但路由不同。也许代码会更有效,或者通过按钮单击事件比仅仅使用 href 可以改善用户体验。
要牢记的两个主要事项是用户体验和设计,然后是页面的安全性。始终确保任何 link/redirection 都不会危及页面的安全。这可能会决定您需要使用的方法。
有关其他信息,您可以先阅读以下内容 link,然后继续阅读网站的其余堆栈交换 UX 部分:
希望对您有所帮助。
我的导航栏侧面和水平方向上的项目很少。每个项目都包含不同页面的 link。我读过几篇关于 href 属性的文章。对于应该使用什么有很多不同的意见,特别是在 HTML5 中,因为 href 不是必需的。如果可能的话,我想隐藏 link。其中一种选择是使用 onClick 函数。关于是否应该有 javascript 或 # 符号也有很大的争论。例如:
选项 1
<a href="#" onclick="someFunction(e)"></a>
或选项 2
<a href="javascript:void(0);" onclick="someFunction(e)">
我想知道这是否是解决此问题的最佳方法。我还看到很少有涉及 JQuery 的选项,但我不确定这是否是最佳选择。如果有人可以提供帮助,请告诉我。我只想使用经过良好测试的东西,这将是一个长期的解决方案。提前致谢。
如果您实际上是 link 使用 URL... 访问另一个 HTML 页面,则使用 link 元素和 href。
如果您在某个框架中并更改路线或视图 - 或者触发某些事件 - 这取决于您。如果需要,您可以使用按钮或任何元素或 <a>
,但您必须确保防止 link.
听起来你的问题不在 href 或 none 之间 - 但在 link 或其他东西之间。
常规link
<a href='http://sheriffderek.consulting' target='sheriff'>link</a>
非javascript 网站的后备link? (不太可能在 2017 年除非你是 public 图书馆之类的)...
<a href='http://sheriffderek.consulting' onclick='someFunction(e)'>js view trigger with fallback link</a>
另一个元素
<button onclick="someFunction(e)">button</button>
此外 - 这取决于框架。我相信 Angular 只是说要使用 link 但不要使用 href。
如今,我看到大多数开发人员更喜欢“#”而不是 "javascript:"。
如果我必须使用 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混淆几乎毫无帮助。
您用于重定向页面(或调用事件)的方法实际上取决于您尝试通过该操作实现的目标和整体用户体验。有些情况下 href 更合适:
- 图像也是 link
- 用作 link 的单词或短语
- 您想要向用户显示的实际 link
可以对按钮的 onClick 事件进行编码,以实现相同的效果,但路由不同。也许代码会更有效,或者通过按钮单击事件比仅仅使用 href 可以改善用户体验。
要牢记的两个主要事项是用户体验和设计,然后是页面的安全性。始终确保任何 link/redirection 都不会危及页面的安全。这可能会决定您需要使用的方法。
有关其他信息,您可以先阅读以下内容 link,然后继续阅读网站的其余堆栈交换 UX 部分:
希望对您有所帮助。