提交表单时,我会显示加载动画并禁用该按钮。不幸的是,当我单击后退按钮时,Firefox仍会显示加载图像,并且该按钮仍处于禁用状态。这不会发生在Chrome中。有什么想法吗?
$(document).ready(function() {
$('#go').removeAttr('disabled');
$('#loading').replaceWith('<img id="loading" src="/static/images/loading.gif" style="display:none; vertical-align:middle" />');
$('#go').click(function(e) {
e.preventDefault();
$('#go').attr('disabled', 'disabled');
$('#loading').show();
$('#go_form').submit();
});
});
答案 0 :(得分:5)
Firefox在浏览器会话中使用内存缓存来处理整个网页,包括其JavaScript状态。在访问过的页面之间前后移动不需要加载页面。此功能使页面导航速度非常快。
要检测此情况,请使用pageshow
事件。该事件将具有一个名为persisted
的属性,如果您在缓存中导航,则该属性将为true。如果您看到此状态,则可以重置页面状态。
答案 1 :(得分:0)
这可能是由于Chrome和Firefox中的缓存机制不同。一个简单的解决方法是隐藏onunload
事件中的加载图像。