设置 - 具有许多条件的大型搜索作为通过 html 提交按钮的 POST,在服务器发送第一个字节/结果页面开始加载之前可能需要几秒钟。
http://api.jquery.com/unload/现已弃用(从 1.8 版开始),我正在寻找执行以下操作的正确方法...
当有人点击搜索按钮时,我通过将按钮文本设置为“正在搜索...”来给用户一点反馈,然后允许提交继续(返回 true):
$('#dosearch').click(function() {
$(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
return true;
});
在卸载期间,我目前正在这样做:
$(window).unload(function() {
$('#dosearch').html('<i class="icon-search"></i> Search');
});
我尝试绑定(bind)到 beforeunload,但是提交一发生就触发(坏),而不是浏览器开始呈现新页面(好)。
问题是如果他们点击搜索然后点击浏览器上的“返回”按钮。如果他们这样做,那么搜索...文本仍然会显示。
做我在这里尝试的事情的正确/正确方法是什么?
注意:(使用 I 标签的原因是我使用的字体很棒)。
最佳答案
绑定(bind)一个空的事件处理程序以卸载似乎可行,但这有点像 hack。
$('#dosearch').click(function() {
$(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
return true;
});
$(window).on("load", function(){
$('#dosearch').html('<i class="icon-search"></i> Search');
});
$(window).on("unload", function(){
// Leave this blank handler here or onload won't fire on IE or FF when you click back button
});
参见 this question进行解释。
关于javascript - 现在 Jquery 的 .unload 已弃用,取消设置提交按钮文本的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019686/