2

我有一个菜单栏。菜单栏上的每个项目都是一个超链接:

  <a href="#" title="item1">

根据菜单选择,我显示了一些 div 并隐藏了剩余的 div。一切正常。如果我单击菜单项,结果显示在同一页面上,这很好,但在浏览器地址栏#上显示的符号就像localhost/abc#这会导致激活浏览器返回(<--)按钮,这可能会给出错误的假设用户可以单击浏览器上的后退按钮。

有没有办法避免#在地址栏中显示?

我正在使用return false;事件处理函数中的语句来禁用 href 链接。

4

2 回答 2

6

有没有办法避免在地址栏中显示#?

是的,您可以#通过更改

<a href="#" title="item1">

<a href="javascript:void(0)" title="item1">

为什么显示#?(来自 MDN)

href - 这是定义超文本源链接的锚的唯一必需属性。它指示链接目标,可以是 URL 或 URL 片段。URL 片段是前面带有井号 (#) 的名称,它指定当前文档中的内部目标位置(ID)。URL 不限于基于 Web (HTTP) 的文档。URL 可以使用浏览器支持的任何协议。例如,file、ftp 和 mailto 在大多数用户代理中工作。

于 2012-10-25T20:58:43.500 回答
1

如果您按照您所说的结束事件处理程序,return false它将不会出现在您的地址栏中。return false基本上,在被调用的事件处理程序和(因为它没有返回)之间,有些事情并没有按照应有的方式进行。确保您的 JavaScript 没有错误。

于 2012-10-25T21:00:52.500 回答