如果我使用#怎么办!代替锚点<a>?

时间:2016-12-30 10:44:37

标签: html

I have used #! in href of a tag in my website. It does not throws the user on top of the page if he/she clicks the link. But my question is, is it legal?

<a href="#!">Click here</a>

instead of

<a href="#">Click here</a>

1 个答案:

答案 0 :(得分:12)

您的目标似乎是创建一些用户可以点击的内容,以便触发一些JavaScript并且您不需要副作用(例如导航到页面顶部)。

  

合法吗?

  • 语义正确。链接应该是链接。
  • 这是一个hack:您正在使用id="!"链接到该元素,并且取决于该元素不存在时发生的错误恢复。
  • 根据构成有效 HTML的规则允许。
  • 根据关于工作的各种可访问性立法,可能没关系,如果没有JavaScript工作,通常不关心

提供仅用于绑定JavaScript的可点击控件的正确方法是使用按钮。

<button type="button">Click here</button>

你可以应用CSS来让它看起来像你喜欢的那样,所以不要让“但我希望它看起来像一个链接”阻止你。

更强大的方法是使用服务器端回退(即表单提交或链接)并通过调用事件对象的preventDefault方法来取消控件的默认行为。

进一步阅读: