私は、ユーザーがヒットした場合、同じ情報を再送信し、データのフローと整合性を失うかもしれないアプリケーションを作成しています。 JavaScriptを使用しているユーザーと使用していないユーザーの両方で無効にするにはどうすればよいですか?ブラウザの戻るボタンを無効にする
答えて
悲しいことに、それは不可能です。ただし、アプリケーションのナビゲーションモデルを検討してください。 Post/Redirect/Get PRG Modelを使用していますか? http://en.wikipedia.org/wiki/Post/Redirect/Get?
このモデルは、ポストバックモデルよりもバックボタンの方がフレンドリーです。
それについて悲しいことはありません。 –
有効なポイント。私はただ悲しいです。 ;) –
Scott - ツールバーを無効にして、IE固有のメニューを右クリックする機能はありますか?私は完全にナビゲーションをロックするLOBアプリを見たことがあるが、(また悲しいことに)彼らはまた、ユーザーがIEを必要とする。 –
すべきではありません。
ページのonbeforeunloadイベントに何らかのスクリプトを添付して、ユーザーが何をしたいのかを確認することができます。もう少し行くと〜disable itを試してください。ただし、JavaScriptがオンになっているユーザーにのみ有効です。代わりに、アプリケーションの書き換えを見て、各ページの送信時にトランザクションをコミットしないようにします。ただし、プロセスの最後に限ります。
Hmmm ... onbeforeunloadイベントは、ユーザーが別のページに移動しているだけでなく(ユーザーが戻るボタンを押したため)、スクリプトが呼び出されるため、ページから移動するときにも呼び出されます。 –
各フォームのデータを_NEWウィンドウに投稿できます。これにより、各ウィンドウの戻るボタンが無効になりますが、javascriptを使用しないと、古いウィンドウを強制的に閉じてしまうことはありません。ここで
がそれに前のポストです:私は強くバックボタンを壊す防ぐために英雄的な長さに行くためにあなたを促す Prevent Use of the Back Button (in IE)
よく、推薦エンジンは投稿を作成したときにそれを表示しませんでした:( – Haoest
、それはあなたのユーザーを遠ざけるために確実な方法であるとさえ番にそれを作りました1 on Jacob Neilsen's Top 10 Web Design Mistakes in 1999。
「おそらく、<ここにあなたのシナリオを挿入するために戻るボタンを壊さないようにするには、どうすればいいですか?」という質問をすることが考えられます。>?
Scottの答えがマークに近い場合は、PRGモデルへのフローを変更することを検討してください。それが他のものであれば、もう少し詳しく説明し、私たちがどのように役立つかを見てください。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");
すぐにあなたがいることがわかります:
彼はバックボタンを "壊す"とは言っていませんでした。 「戻る」とは、「あなたのAjaxアプリケーションでやったことを元に戻す」という意味で、代わりに「1つの任意かつ曖昧なHTTPリクエストに戻る」という意味です。 – pcorcoran
私にはちょうど "彼は戻ってボタンを壊すことを望んでいない、彼はちょうどそれが壊れないようにするために戻るボタンを壊したいと思った"と読んでいる。 :S AJAX/JavaScriptとバックボタンを使って楽しいプレイをすることができます。 –
最良のオプションは、あなたが
あなたはこのようなものを使用することができます(今のところ)それで立ち往生しているがあれば、流れを制御するポストバックに依存しません例のみPUのために - 、コードがチェックされていないに延びているいくつかの問題を解決します
if (Page.IsPostBack)
{
if (pageIsExpired()){
Response.Redirect("/Some_error_page.htm");
}
else {
var now = Now;
Session("TimeStamp") = now.ToString();
ViewState("TimeStamp") = now.ToString();
}
private boolean pageIsExpired()
{
if (Session("TimeStamp") == null || ViewState("TimeStamp") == null)
return false;
if (Session("TimeStamp") == ViewState("TimeStamp"))
return true;
return false;
}
:それはすべてのブラウザでは動作しませんが、その後、次のようなあなたのコードにチェックを導入することができますrposes ..ロラから
4 Guysが(遠く離れ銀河に)長い時間前に戻るボタンを無効にするこの記事を書いた:あなたが思い付くものは何でもhttp://www.4guysfromrolla.com/webtech/111500-1.shtml
はバックボタンが停止しない場合があります無効にします将来のブラウザの戻るボタン。
開発サイクルの後半では、上記のいくつかの提案を試してみることをお勧めしますが、バックボタンがサイトのロジックを妨げないようにフローを構成する必要があるときは、彼らが期待するような前のページ。
JavaScriptを使用して戻るボタンを無効にするちょっとしたハックが出てきました。私は、Firefox 3.6とIE9、クロム10上でそれを確認:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<title>Untitled Page</title>
<script type = "text/javascript" >
function changeHashOnLoad() {
window.location.href += "#";
setTimeout("changeHashAgain()", "50");
}
function changeHashAgain() {
window.location.href += "1";
}
var storedHash = window.location.hash;
window.setInterval(function() {
if (window.location.hash != storedHash) {
window.location.hash = storedHash;
}
}, 50);
</script>
</head>
<body onload="changeHashOnLoad(); ">
Try to hit back!
</body>
</html>
私は使用することによってこれを達成することができた:
Response.Cache.SetExpires(DateTime.MinValue);
Response.Cache.SetNoStore();
私はResponse.Cache.SetCacheability(HttpCacheability.NoCache)を使用する場合、私はオフィスファイルをダウンロードできませんでした。
データが重複していないことを確認するには、適切な検証を追加する必要があります。しかし、私の場合のように、フォームの後にサードパーティのAPIを使用しているので、データを完全に制御することはできません。だから私はこの
history.go(+1);
これは、彼らが戻って(ちょうど例の支払いを与える)「支払い」ページへ行くしようとした場合、「支払い」ページの後に来ることになっている「領収書」を楽しみにユーザーを送信するのに使用しました。
がリンク
バックを無効にし、ブラウザasp.netではJavaScriptを使用して、ボタンの機能の下に検索しても、控えめに使用してください| (JavaScriptを使用して)ASP.Net無効にブラウザの戻るボタン
http://www.aspdotnet-suresh.com/2011/11/disable-browser-back-button.html
すべての主要なブラウザで戻るボタンを無効にすることが可能です。これは、バックボタンを完全に無効にするためにハッシュ値を使用するだけです。私はあなたのサイトを使用している場合は はちょうどあなたのページに
<script>
window.location.hash="no-back-button";
window.location.hash="Again-no-back-button";//for google chrome
window.onhashchange=function(){window.location.hash="no-back-button";}
</script>
トリッキーな1つですが、作品... –
@Ankit:Brilliant!私の命を救いました!ありがとう!!! – Emma
は、すべての場合、つまりクロム、サファリで正しく機能しません。 –
- 1. jspのログアウト時にブラウザの戻るボタンを無効にする
- 2. djangoでブラウザの戻るボタンを無効にするには?
- 3. ブラウザの「戻る」ボタンを無効にする
- 4. Rシャイニーアプリでブラウザの戻るボタンを無効にする
- 5. DNN:ブラウザの戻るボタンを無効にする方法は?
- 6. ブラウザのボタンを無効にする
- 7. 戻るボタンを無効にする
- 8. 戻るボタンを無効にする
- 9. ログアウト後にspring mvcアプリケーションのブラウザの戻るボタンを無効にする
- 10. asp.netのユーザーログアウト時にブラウザの戻るボタンを無効にする方法c#
- 11. jittersterプロジェクトのログアウト後にブラウザの戻るボタンを無効にする方法
- 12. Android DroidGapの無効化戻るボタン
- 13. アクションバーのハードウェア戻るボタンの動作を無効にする
- 14. ionicのデフォルトの戻るボタンを無効にする方法
- 15. 戻るボタンのテキストを無効にする
- 16. アンドロイドの戻るボタンを無効にする方法
- 17. 戻るボタンとホームボタンの機能を無効にする
- 18. ポップアップウィンドウの戻るボタンを無効にする
- 19. 支払い処理中に戻るボタンを無効にする
- 20. C#:ボタンをリセットするか、以前の無効に戻す
- 21. ブラウザの戻るボタンのトリガーイベント
- 22. すべてのブラウザで戻るボタンを無効にするにはどうすればよいですか?
- 23. 反応ネイティブナビゲーションで戻るボタンを無効にする
- 24. uwpで戻るボタンを無効にする
- 25. Flex Air Android:戻るボタンを無効にする
- 26. Angular4 Cordovaで戻るボタンを無効にする
- 27. Ionic 2:戻るボタンでモーダル解除を無効にする
- 28. フォームとブラウザの戻るボタン
- 29. Javascript:エスケープキー=ブラウザの戻るボタン
- 30. ブラウザの戻るボタンとイベント
をコードするこれらの5行を入れて、戻るボタンはまだMINEです。私のものを混乱させないでください... ;-) – Shog9
これは間違った質問です。情報を再送信すると、アプリケーションがそれを認識して適切に動作するように、アプリケーションを設計する必要があります。 – reinierpost