Chrome没有跳转到片段标识符/锚点

时间:2017-05-12 21:41:12

标签: html google-chrome

这是一件很简单的事情,我很难找到可能出错的地方。在一个网页中,带有片段的链接:

<a href='https://strenga.com/about-strenga/#faq'>FAQ</a>

在相关网页中,有一个锚:

<section id="faq"><h2>Frequently Asked Questions<h2>...</section>

在我的Windows机器上,点击链接正确跳转到Edge和IE中的目标锚点,但在当前版本的Chrome或Firefox中没有。 (奇怪的是,它似乎可以在移动设备上使用Chrome。)

补充意见:

  • 点击上面的链接后,Chrome中的网址栏会显示没有片段标识符的网址(即上面的情况显示https://strenga.com/about-strenga/
  • 如果您将网址直接输入Chrome上的网址栏(而不是点击链接),则会发生相同的行为,除非您已经在页面上(例如在页面{{ 1}},输入foo.com),在这种情况下它会正确跳转。
  • 它似乎特定于我的网页:访问其他网站上带有片段的网址(例如Stack Overflow)工作得很好。

如果页面是动态组装的,我可以理解这一点(当浏览器看起来时,DOM中可能没有锚点,或者可能还没有找到布局),但这是一个没有任何内容的静态页面很复杂。

还有一些其他SO帖子,例如thisthis建议“解决Chrome错误”,但我希望Chrome有这样大的错误,你可以找到它在他们的网站上。继续我的挖掘,我确实找到了这些合理的相关性:

但是,我知道(并在Chrome devtools中验证过)有问题的网址没有被重定向,而且我已经完成了Win10 / Chrome错误中的步骤,以验证他们的修复是否在我的机。

我还有什么办法可以解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

好的,这是javascript。埋在javascript代码中的是对网址的重写:

#define STRINGIFY(x)         #x
#define EVALUATE_STRING(x)   STRINGIFY(x)
#define GIT_BRANCH_NAME      EVALUATE_STRING(BRANCH_NAME)

该代码用于清理查询参数,但也会获取片段标识符。事后看来,这似乎是我会更容易抓住的东西,但代码被深埋,与此页面无关。

我自己的代码,所以没有太多的一般性答案,除了:仔细查看你的javascript ...: - )