如何使用jquery检测页面刷新?

如何使用jquery检测页面刷新?,jquery,events,refresh,reload,Jquery,Events,Refresh,Reload,如何捕获页面重新加载事件 我有一个消息传递系统,当用户刷新页面时,它会丢失所有输入。我想使用ajax重新填充,因此需要检测页面何时被刷新/重新加载 $('body').bind('beforeunload',function(){ //do something }); 但这不会为以后保存任何信息,除非您计划将其保存在某个cookie中(或本地存储),并且并非所有浏览器都会触发unload事件 例如: 代码: $(window).bind('beforeunload',function(

如何捕获页面重新加载事件

我有一个消息传递系统,当用户刷新页面时,它会丢失所有输入。我想使用ajax重新填充,因此需要检测页面何时被刷新/重新加载

$('body').bind('beforeunload',function(){
   //do something
});
但这不会为以后保存任何信息,除非您计划将其保存在某个cookie中(或本地存储),并且并非所有浏览器都会触发
unload
事件


例如:

代码:

$(window).bind('beforeunload',function(){

     //save info somewhere

    return 'are you sure you want to leave?';

});

所有代码都是客户端的,我希望您对此有帮助:

首先,我们将使用3个函数:

    function setCookie(c_name, value, exdays) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + exdays);
            var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
            document.cookie = c_name + "=" + c_value;
        }

    function getCookie(c_name) {
        var i, x, y, ARRcookies = document.cookie.split(";");
        for (i = 0; i < ARRcookies.length; i++) {
            x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
            y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
            x = x.replace(/^\s+|\s+$/g, "");
            if (x == c_name) {
                return unescape(y);
            }
        }
    }

    function DeleteCookie(name) {
            document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
        }

如果要在页面刷新之前保留某些变量

$(window).on('beforeunload', function(){
    // your logic here
});
如果您想根据某些条件加载某些内容

$(window).on('load', function(){
    // your logic here`enter code here`
});

客户端上有两个事件,如下所示

1。window.onbeforeunload(在浏览器/选项卡关闭和页面加载时调用)

2。window.onload(页面加载时调用)

在服务器端

在客户端


window.onbeforeunload=函数(e){
$.ajax({
键入:“GET”,
async:false,
url:“/Home/TestAjax”,
数据:{IsRefresh:'Close'}
});
};
window.onload=函数(e){
$.ajax({
键入:“GET”,
async:false,
url:“/Home/TestAjax”,
数据:{IsRefresh:'Load'}
});
};

您可以在这里找到解决方案:对于记录,它也将在页面关闭时被激发。您还可以使用此方法保存页面中的信息。只需获取所有输入字段值,创建一个数据字符串,并在beforeunload函数中添加window.location.href=“pagename?datastring”这是否应该是
on
unload
?——此外,这是否检测到Firefox中的F5?这还检测到浏览器上的“后退”按钮,而不仅仅是页面刷新。当我尝试此操作时,它每隔一次触发第一次加载的测试代码。
$(window).on('load', function(){
    // your logic here`enter code here`
});
public JsonResult TestAjax( string IsRefresh)
    {
        JsonResult result = new JsonResult();
        return result = Json("Called", JsonRequestBehavior.AllowGet);
    }