哈希链接重新加载页面

时间:2012-06-20 21:36:42

标签: html hash browser-bugs

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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