【问题标题】:Hash change event in ajax (javascript)ajax 中的哈希更改事件 (javascript)
【发布时间】:2011-10-10 19:29:42
【问题描述】:

我实际上是在尝试让用户为页面添加书签,为此,我正在使用 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 在第一次按下返回按钮时,单独的 url 更改为 http://www.example.com/abc.php 但页面没有加载。

但下一次按下它时,它就正常了。 我希望他们只按一次。提前谢谢。

【问题讨论】:

  • 在 url 变为#hello 之前用户是否先点击 abc.php?

标签: javascript back-button hashchange


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 2011-05-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2021-07-07
    相关资源
    最近更新 更多