我有一个包含多个复选框输入元素的页面。切换这些选项会以一种只能在Javascript中完成的方式改变页面的外观。
当您关闭并重新打开页面时,我的问题出现了。在页面加载后的一小段时间内(看起来不一致),Firefox恢复复选框的状态,而不引发它们的onchange事件。
是否有一种方法可以确定Firefox何时恢复这些元素,或者至少,是否有一种方法可以在不要求用户更改浏览器设置的情况下禁用此功能?
我也在使用jQuery,万一有什么可以帮助。
在输入上使用autocomplete="off"
没有影响。
如果您只需要触发更改处理程序,将页面的状态与用户的最后一个首选项相匹配(这似乎是个好主意),那么像这样的东西应该可以完成任务。:
$(window).load ( function () {
$('input:checked').change ();
} );
参见jsBin。
"切换这些会改变页面的外观"
这就是你的问题。页面应该依赖于切换的状态,而不是在它们被切换时被更改。我也遇到过"更改"事件和浏览器历史记录。与其与之抗争,不如将其视为用户特定数据的免费存储。根据输入状态绘制页面,即使您认为您知道应该是什么。
如果你发布一些特定的代码,我可以建议修改