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

标签 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>

这里的一切都正常,除了当用户想要返回上一页时,他必须按浏览器的后退按钮两次而不是一次。

如果他在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/

相关文章:

javascript - 用于在页面上增量滑动点的对象内的复合值

javascript - $.post(url, 函数(数据,状态) {警报(数据)});警报()不工作

javascript - 在页面中添加 JavaScript 会增加文本的字体

javascript - 通过浏览器的 "BACK"函数加载页面时触发 onload 脚本(js 或 jQuery)

javascript - Hashchange 以显示 div

javascript - 折线图的 'enter' 选择可以设置动画吗?

android - 点击后退按钮然后恢复 Activity

android - 带有后退按钮的 react 导航重新渲染 View

jquery - 目前最好的 Ajax 历史记录和书签插件

javascript - 在 unbeforeunload 上更改 location.hash