空链接锚

cor*_*ore 6 html javascript anchor

我有一个锚点,不会去任何地方,但有一个onclick(例如<a onclick="..."></a>).我的问题与href属性有关.我应该把价值放在什么位置?

如果我只是省略href,锚没有适当的装饰 - 当鼠标放在它上面时,鼠标指针图标不会改变.

如果我使用href="#",则单击链接时窗口将滚动到页面顶部.

如果我使用href="javascript:..."并输入onclick继续的值,javascript:则会保留页面,并且在单击链接时地址栏包含Javascript.

当我提到浏览器行为时,我指的是Chrome,我正在测试它.

我应该把为href当主播是不是一个实际的链接,但只存在有onclick执行的行为呢?

Pao*_*ino 12

理想情况下,您可以选择禁用Javascript的用户:

<a href="degrade_option.html" onclick="return fancy_option();">do the option!</a>
Run Code Online (Sandbox Code Playgroud)

如果你不是那种东西,虽然你真的应该这样,最常见的方法是使用英镑然后取消事件以防止发生默认操作,如下所示:

<a href="#" onclick="return do_something();">do something</a>
Run Code Online (Sandbox Code Playgroud)

但是你必须确保do_something回报false.(或者你可以return false;在点击处理程序的末尾添加,但这会更快地变得难看)

虽然,说实话,你真的不应该有内联的Javascript属性开始.他们是不好的做法,维持的噩梦,还有更好的选择.

编辑:回应您的评论,替代方案是不引人注目的javascript:

"不引人注目的JavaScript"是JavaScript编程语言中的一种新兴技术,如万维网上所使用的那样.虽然该术语未正式定义,但其基本原则通常被理解为包括:

  • 从网页的结构/内容和表示中分离功能("行为层")
  • 避免传统JavaScript编程问题的最佳实践(例如浏览器不一致和缺乏可伸缩性)
  • 逐步增强,以支持可能不支持高级JavaScript功能的用户代理

阅读页面了解一些示例.


Jon*_*ant 11

在你的onclick处理程序中,将其添加到结尾:

return false;
Run Code Online (Sandbox Code Playgroud)

这将取消默认处理(即在链接之后),你可以在href中放置你想要的任何东西(#就像任何一样好).