jQuery リロード対策

jQueryでF5とCtrl + rを押したときのリロードを停止

F5を押したときと、Crtl+Rを押したときの制御。
ブラウザのリロードボタンと右クリックで表示されたメニュー内の更新は対象外。

jQuery

$(function () { var beforecode; $(document).on('keydown',function(e){ var keycode = (e.keyCode ? e.keyCode : e.which); // F5 116 / Ctrl + r 17+82 if (keycode == 116 || keycode == 17 && beforecode == 82 || keycode == 82 && beforecode == 17) { // 中断 return false; } beforecode = keycode; }); });

戻るボタンの抑制には、Backspace: 8、Alt + ←: 18+37 を指定。

jQuery

$(function () { var beforecode; $(document).on('keydown',function(e){ var keycode = (e.keyCode ? e.keyCode : e.which); // inputやtextareaでのBackspaceは無効にしない var tagname = $(e.target).prop('tagName'); if (keycode == 116 || keycode == 17 && beforecode == 82 || keycode == 82 && beforecode == 17 || keycode == 8 && (tagname != 'INPUT' && tagname != 'TEXTAREA') || keycode == 18 && beforecode == 37) { // 中断 return false; } beforecode = keycode; }); });

Chrome52からBackspaceでブラウザバックできないようになりました。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。