【问题标题】:how to debug bookmark anchors not working如何调试书签锚不起作用
【发布时间】:2022-02-19 05:01:09
【问题描述】:

我有一个非常复杂的 html 页面,我在不同的地方添加了一些书签锚点。锚点如下所示:

<a href="#foo bar">click here for foo bar</a>
lorum ipsum etc
<a name="foo bar">foo bar</a>

但是当你点击它们时,什么都没有发生——地址栏中的 url 没有改变,页面也没有移动。

如果我将锚点取出并将它们放入一个更简单的页面,它们就会开始工作,所以我认为某些东西一定会以某种方式干扰导航,但我想不出如何确定它。我想知道某处取消导航的 javascript 错误,但该页面有数千行 javascript,我还没有发现任何可疑之处。

Chrome 和 Firefox 都会出现此问题。

如何调试这个问题?


更新:这可能是 CSS 问题吗?目标锚点位于&lt;div&gt; 内,CSS 属性为overflow:auto;。这导致滚动条出现在 div 内,而不是页面的边缘 - 这不是我的简单文本页面的情况。

更新 2:溢出:自动不会破坏命名锚; tested with a simple example

【问题讨论】:

  • 书签中是否允许有空格?
  • 我会首先寻找阻止点击事件传播或阻止默认操作的 JavaScript。如果你使用 jQuery,api.jquery.com/event.stopPropagationapi.jquery.com/event.preventDefault
  • @sjums 我尝试将书签复制到一个简单的测试页面,并且它们可以很好地处理空格。不过我还是会尝试一下——此时任何事情都值得尝试。
  • @j08691 在大多数情况下,只需 return false; 在事件处理程序的某个位置。我也怀疑。尝试先禁用 Javascript,看看它们是否有效。
  • @bazmegakapa 不幸的是,页面的整个部分都是通过 ajax 加载的,所以如果没有 javascript 就不容易测试 - 将有问题的部分拉到一个简单的测试页面中并没有重现问题。

标签: html anchor


【解决方案1】:

命名锚需要有一个单字名称或 id(id 更好,因为名称已被弃用)

这将起作用:

<a href="#foo-bar">click here for foo bar</a>
    lorum ipsum etc
<a id="foo-bar">foo bar</a>

【讨论】:

  • 感谢您的回答。我将更改我的代码以使用 id 以实现未来的兼容性,尽管目前看来多词锚确实有效 - 请查看此示例:jsfiddle.net/wFcnk
  • 是的,我在回答后尝试了一下,它似乎确实有效(奇怪!),但根据 w3c,只有字符串匹配模式 [A-Za-z][A-Za-z0 -9:_.-]* 应该用于 ids。例如:“并且必须至少包含一个字符。该值不能包含任何空格字符。”从这里:w3.org/TR/html5/elements.html#the-id-attribute
【解决方案2】:

试试这个:

<a href="#foo bar">click here for foo bar</a>
lorum ipsum etc
<a id="foo bar">foo bar</a>

所以基本上将你的 name 属性更改为 id 。

另外...我认为它基本上会寻找“foo”而不是“foo bar”。不过我还没有测试过。

【讨论】:

  • 感谢您的回答。事实证明我的锚实际上工作正常,只是一些 duff javascript 导致了我的问题。顺便说一句,我对锚进行了快速测试;你可以在这里看到它:jsfiddle.net/wFcnk
【解决方案3】:

这绝对是一个脚本问题,而不是锚的语法。我最终(意外地)通过向 click() 处理程序添加一些无效的 JavaScript 来调试问题,这破坏了单击处理程序但导致锚点再次开始工作。我能够从那里继续。

【讨论】:

  • 但是从您提出的问题来看,我不确定这是否会被视为“已接受的答案”。经过快速测试,看起来使用 id 属性(第一个答案)就足够了。
【解决方案4】:

一个小怪癖......在您的锚标签之间不要有任何 HTML 标签,否则书签将不起作用!

【讨论】:

猜你喜欢
  • 2016-05-14
  • 1970-01-01
  • 2011-08-03
  • 2010-11-10
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多