在Firefox中的后退按钮上恢复对象类

时间:2010-11-23 22:22:17

标签: javascript jquery css

  1. 我有一张表格。最初,输入元素具有“未填充”类。填写表单后,我会动态删除该类。

  2. 表单已提交,并且有一个重定向到另一个页面。

  3. 我点击“后退”按钮返回原始表单,但元素缺少“未填充”类。

  4. 这在IE8中不是问题。 我尝试添加这个jQuery调用,但是当通过后退按钮到达页面时它不会被执行:

    $('#my_input').hasClass('unfilled')
    

    谢谢!

    编辑:上面发布了错误的代码行,抱歉。应该是:

    $(document).ready(function() {
        $('#my_input').addClass('unfilled')
    

2 个答案:

答案 0 :(得分:1)

Firefox维护一个名为bfcache(read more here)的东西,它基本上将页面的整个状态缓存在内存中,并在您返回时恢复它。 onload脚本不会再次执行,并且元素保持与之前相同的状态。您可以通过向页面添加虚拟onunload处理程序来禁用此行为。

答案 1 :(得分:0)

Firefox返回时会保留状态,这对于DHTML繁重的页面非常方便(例如,如果您生成了一个对话框,那么当您返回时该对话框仍然存在)。您只需在代码中考虑到这一点;例如,您可以尝试添加一个onready处理程序,为所有输入元素添加“未填充”类,例如。

$(function() {
    $("INPUT").addClass("unfilled");
 });