ajax中的哈希更改事件(javascript)

时间:2011-10-10 19:29:43

标签: javascript back-button hashchange

我实际上是在尝试让用户为页面添加书签,为此,我正在使用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>

除此之外,当用户想要返回上一页时,他必须按下浏览器的后退按钮2次,而不是一次。

如果他在http://www.example.com/abc.php#hello 在第一次按下后退按钮时,仅限网址更改为http://www.example.com/abc.php,但页面未加载。

但是下次按下它时,它会正确显示。 我希望他们只按一次。提前完成。

1 个答案:

答案 0 :(得分:1)

我对你的问题并不完全清楚。如果用户第一次使用散列(例如#html3)来到页面,您似乎正试图解雇此问题,因此您可以使用服务器中的相应数据刷新其屏幕。问题本身似乎与hashchange事件没有直接关系。

在测试此HTML之后,我相信它可以按预期工作。每当页面加载并且在其上有#hash时,它将在查询字符串上将其重定向。这也适用于页面刷新。

<script>
function hashchk()
{
    hashvalue=window.location.hash; 
     if(hashvalue!="") 
     { 
        window.location.replace("viewme.php?ppid="+hashvalue.substring(1)); 
    } 
}
hashchk();
</script>