我实际上是在尝试使用户能够为页面添加书签,为此,我正在使用 javascript 的哈希更改事件。这是我的代码:
<script type="text/javascript">
function hashchk()
{
hashvalue=window.location.hash;
newhash="";
for(var i=1;i<hashvalue.length;i++)
{
newhash=newhash+hashvalue[i];
}
if(hashvalue!="")
{
window.location.replace("viewme.php?ppid="+newhash);
}
}
hashchk();
</script>
这里的一切都正常,除了当用户想要返回上一页时,他必须按浏览器的后退按钮两次而不是一次。
如果他在http://www.example.com/abc.php#hello 在第一次按下后退按钮时,url 单独更改为 http://www.example.com/abc.php但页面未加载。
但在下次按下它时,它会正常出现。 我希望他们只按一次。提前致谢。
最佳答案
我对你的问题不是很清楚。如果用户第一次访问带有散列(如#html3)的页面,您似乎正在尝试触发此操作,以便您可以使用来自服务器的适当数据刷新他们的屏幕。问题本身似乎与 hashchange 事件没有直接关系。
测试此 HTML 后,我相信它可以按您预期的那样工作。每当页面加载并在其上有#hash 时,它将在查询字符串上将其重定向。这也适用于页面刷新。
<script>
function hashchk()
{
hashvalue=window.location.hash;
if(hashvalue!="")
{
window.location.replace("viewme.php?ppid="+hashvalue.substring(1));
}
}
hashchk();
</script>
关于javascript - ajax(javascript)中的哈希更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717654/