使用以下功能可以检测用户按下刷新按钮或关闭按钮的按钮?如果没有另外的方法?
$(window).bind('beforeunload', function(event) {
return 'pls save ur work';
});
Run Code Online (Sandbox Code Playgroud)
Rob*_*low 12
简单的答案是否定的 - 浏览器的安全模型不允许您明确检测用户选择离开页面的方式(刷新/关闭/内部链接/外部链接).
在浏览器关闭时检测刷新浏览器以进行卸载/ beforeunload
可以 - 使用cookie - 检查用户何时加载您的页面,无论他们以前是否在同一会话中的该站点上 - 例如检测他们是否已刷新 - 但在刷新之前不会:
部分和不完美的方法是检测他们是否在页面卸载之前按下"F5"或"Ctrl + R"或"Cmd + R"(用于刷新的键盘快捷键).这将检测一些刷新,但不会检测用户实际单击刷新按钮的位置.
(function($) {
var refreshKeyPressed = false;
var modifierPressed = false;
var f5key = 116;
var rkey = 82;
var modkey = [17, 224, 91, 93];
// Check for refresh keys
$(document).bind(
'keydown',
function(evt) {
// Check for refresh
if (evt.which == f5key || window.modifierPressed && evt.which == rkey) {
refreshKeyPressed = true;
}
// Check for modifier
if (modkey.indexOf(evt.which) >= 0) {
modifierPressed = true;
}
}
);
// Check for refresh keys
$(document).bind(
'keyup',
function(evt) {
// Check undo keys
if (evt.which == f5key || evt.which == rkey) {
refreshKeyPressed = false;
}
// Check for modifier
if (modkey.indexOf(evt.which) >= 0) {
modifierPressed = false;
}
}
);
$(window).bind('beforeunload', function(event) {
var message = "not refreshed";
if (refreshKeyPressed) {
message = "refreshed";
}
event.returnValue = message;
return message;
});
}(jQuery));
Run Code Online (Sandbox Code Playgroud)
您还可以检测单击链接的时间是否链接的目标位于同一站点上: 如何检测用户何时离开我的站点,而不仅仅是访问其他页面?
| 归档时间: |
|
| 查看次数: |
24541 次 |
| 最近记录: |