次の機能を使用すると、ユーザが のどのボタンにリフレッシュボタンまたは閉じるボタンを押したかを検出できますか?そうでない場合は別の方法がありますか?javascript beforeunloadがリフレッシュとクローズを検出する
$(window).bind('beforeunload', function(event) {
return 'pls save ur work';
});
次の機能を使用すると、ユーザが のどのボタンにリフレッシュボタンまたは閉じるボタンを押したかを検出できますか?そうでない場合は別の方法がありますか?javascript beforeunloadがリフレッシュとクローズを検出する
$(window).bind('beforeunload', function(event) {
return 'pls save ur work';
});
簡単な答えはノーです - ブラウザのセキュリティモデルは、明示的にユーザーがあなたのページ(リフレッシュ/クローズ/内部リンク/外部リンク)を残すように選択したどのような方法で検出することはできません。
detect refresh browser for unload/beforeunload when browser closed
ことが可能です - クッキーを使用して - ユーザーは、彼らが同じセッションでそのサイトに以前いたかどうかをあなたのページをロードする際にチェックするために - 例えば彼らがリフレッシュしているかどうかを検出 - しかし、彼らは更新されません前:
Detect Browser Refresh in Javascript
Check if page gets reloaded or refreshed in Javascript
部分と不完全なアプローチは、彼らが押された「F5」または「Ctrlキー+ Rを」かどうかを検出することであろうページがアンロードされる直前の "Cmd + R"(リフレッシュのキーボードショートカット)。これにより、リフレッシュが検出されますが、ユーザーが実際にリフレッシュボタンをクリックした場所は検出されません。 How can I detect when the user is leaving my site, not just going to a different page?
:リンクは、リンクのターゲットが同じ敷地内にあるかどうかをクリックされたときにも を検出することができます(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));