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

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

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

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

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

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

谢谢!

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

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

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

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

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