繁体   English   中英

哈希链接重新加载页面

[英]hash link reloads page

我有一个安装在第三方网站上的代码片段。 我无法深入了解细节,但它通过使用<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 并添加与检查器的链接会产生相同的行为。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM