2

我有一个安装在第三方网站上的代码片段。我无法深入了解细节,但它通过使用<script>标签将 HTML、CSS 和 JS 加载到页面上。

部分代码是点击此链接时执行的 JS 函数:

<a href="#">?</a>

如果页面上存在阻止函数执行的 JS 错误,单击链接显然只是将哈希添加到 URL 并将用户带到页面顶部。这是预期的回退行为。

但是,在一个存在大量 JS 错误的第三方站点上,单击该链接会删除顶级域之后的所有内容,添加哈希并指向该页面(主页)。例如,该链接将把用户从:

http://www.example.com/2010/05/14/very-interesting-blog-post/

http://www.example.com/#

值得注意的是,该问题出现在 Firefox 和 Chrome 中,而不是 IE9。我知道如果没有更详细的代码可能无法正确诊断问题,但我无权提供它。我只是希望对这种奇怪的浏览器行为得到某种合理的解释。

如果它有帮助,有问题的网站是一个 WordPress 博客。提前致谢。

编辑:这显然不是由网站上的任何 JS 引起的,因为关闭 JS 并添加与检查器的链接会产生相同的行为。

4

2 回答 2

4

我有一个类似的错误,点击任何<a href="#">会导致整个页面重新加载。我设法通过<base href="/">从页面中删除标签来解决这个<head>问题。我(还)找不到任何有关此的信息。如果我能找到任何其他信息,我会添加更多。

于 2016-04-12T12:53:22.313 回答
0

当您使用 windows.onpopstate 处理后退或前进按钮并使用 ajax 加载页面时,会发生此问题。尝试解决您的 js 代码以处理历史记录。

于 2020-12-07T08:38:02.473 回答