如何单独检测浏览器刷新

时间:2015-02-25 05:55:41

标签: javascript jquery

您好我想在javascript中单独检测浏览器刷新。下面的代码使用的是检测浏览器关闭以及刷新,返回等。

window.onbeforeunload = function (evt) {
      var message = 'Are you sure you want to leave?';
      console.log(evt);
      console.log(window.event);
      console.log(event);
      if (typeof evt == 'undefined') {
        evt = window.event;
      }
      if (evt) {
        evt.returnValue = message;
      }
      return evt;
    }

1 个答案:

答案 0 :(得分:1)

您可以将当前时间从onbeforeunload保存到会话存储,然后当页面加载时会在会话存储中查找一段时间,如果您找到一个并且它在(例如)几个内秒,假设它刷新。

window.onbeforeunload = function() {
    sessionStorage.setItem("left", Date.now());
};

和其他地方,在页面加载时运行的代码:

var left = sessionStorage.getItem("left");
if (left && (Date.now() - left) < 2000) {
    // Refreshed
}

完整示例(live copy):

(function() {
    "use strict";

    window.onbeforeunload = function() {
        sessionStorage.setItem("left", Date.now());
    };

    var left = sessionStorage.getItem("left");
    if (left && (Date.now() - left) < 2000) {
        // Refreshed
        display("Refreshed");
    } else {
        // Freshly loaded
    }
})();