2

设置 - 通过 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');
    });

我尝试绑定到 beforeunload,但是一旦提交发生(坏)就会触发,而不是在浏览器开始呈现新页面时触发(好)。

问题是如果他们单击搜索,然后单击浏览器上的“返回”按钮。 如果他们这样做,那么 Searching... 文本仍会显示。

做我在这里尝试的正确/正确方法是什么?

注意:(使用 I 标签的原因是我使用了很棒的字体)。

4

2 回答 2

1

绑定一个空的事件处理程序来卸载似乎工作,但它是一种黑客。

    $('#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 
    });

请参阅此问题以获取解释。

于 2013-04-15T17:15:11.327 回答
0

如果用户回到历史,这意味着它是否将页面呈现为新页面?因此,无论何时加载页面,您都可以将值重置为您想要的值。

那可能是什么?

于 2013-04-15T16:07:53.390 回答