这是我所拥有的

<div id=A></div>
<div id=B></div>
<input type="button" value="ChangeA" onClick="createTableA();">
<input type="button" value="ChangeB" onClick="createTableB();">


因此,在我的jsp文件中,我使用javascript和jQuery动态地操纵了这两个div的内容。例如,如果我单击changeA,则功能createTableA()将动态操作<div id=A></div>并为其append一个表。所以我的问题是,如果我单击changeA,然后单击changeB,如何处理历史记录,以便如果单击back按钮,我将返回到Table A的内容。

最佳答案

我一直在使用jQuery History plugin进行此类操作,并且对我来说效果很好。

每个“页面”都由您的URL中的哈希引用。这样,“更改页面”不会刷新页面,但是会将页面状态存储在历史记录中并允许添加书签。

编辑
我将扩展该链接中给出的示例,以更适合您的情况。

function loadTable(hash)
{
    if(hash == "ChangeA")
        createTableA();
    if(hash == "ChangeB")
        createTableB();
}
$(document).ready(function() {
    $.history.init(loadTable);
    $("input[id^='Change']").click(function(){
        $.history.load(this.attr('value'));
        return false;
    });
});


上面的代码所做的是在所有input标记上设置一个事件处理程序,这些标记的id以'Change'开头,以便在单击这些按钮时调用loadTable。如果将按钮更改为如下所示:

<input type="button" id="ChangeA" value="ChangeA">
<input type="button" id="ChangeB" value="ChangeB">


单击按钮A会将http://www.example.com/yourpage.html#ChangeA放入地址栏并加载表A,还将表更改添加到浏览器历史记录中。

关于java - 如何处理网页的历史记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2510586/

10-14 01:19