浏览器返回按钮与Ajax相关

4

我知道这方面的话题有很多,但是根据我在其他话题中阅读到的内容,我无法确定该怎么做。

我有一个名为“abc.php”的页面。用户可以进行搜索,然后通过2个ajax请求填充表单。然后,如果用户导航到另一个页面,然后再点击返回到“abc.php”,表单的内容不完整,因为ajax没有运行。是否有办法让这种情况发生?

3个回答

4

在进行ajax时,通过在哈希后面添加搜索词来修改URL(例如:http://example.com/search.php#search-terms-here

然后,在页面加载时,从URL中读取搜索词。


1
使用history.js,以下函数“监听”URL栏中的更改,并调用一个函数来加载适当的页面:
History.Adapter.bind(window,'statechange',function(){  
    var State = History.getState();  
    page(State.url);  
});

function page(url) {
    //AJAX
}

现在,每当您想要更改页面时,只需调用:

History.pushState({state:X}, "Page Title", "Page Url");

这将更新浏览器的URL地址栏,并自动调用新URL的页面(State.url);所有浏览器功能,如前进/后退按钮、书签等都应该正常工作。

1

这篇文章/教程非常好,可以使用jQuery启用后退按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接