ユーザーがブラウザで前のページに戻ることを禁止する必要があります。
これを実現するために、ASP.NET MVC アプリのレイアウト ページに以下のコードを配置します (サーバーから適切な応答ヘッダーを送信することに加えて)。
function noBack() {
window.history.forward();
}
$(document).ready(function () {
$(document).on("pageshow", "body", function (event) {
if (event.persisted)
noBack();
});
});
...
<body onload = "noBack();">
私が解決策を探している2つの問題があります。
1) 現在、このコードは奇妙な動作をしますが、すべてのブラウザで一貫しています。それが何をするかというと、IE を含む任意のブラウザで [戻る] ボタンを押すと、前のページに戻ってブラウズし、それをロードして適切に表示し、次に前方にブラウズして、表示していたページに戻ります。戻るボタンを押したとき。
これはイライラします。どうすればこれを取り除くことができますか?
2)pageshow
私が理解しているように、このイベントは IE ではサポートされていません。IE に代わるものがあれば教えてください。FireFox と Chrome に加えて、IE 8 以降をサポートする必要があります。
補足:クライアント/ユーザーのブラウザをいじるのは良い習慣ではなく、サーバーに適切な応答ヘッダーを送信させることで出力キャッシュを無効にする方が良いことはわかっていますが、私のクライアントは、ブラウザのバックと進むボタン機能。