フォームがURLに送信されると、ブラウザは履歴にページを再度登録します。私はPage Xにいて、Page Yに行きフォームを提出するとします。今、私はブラウザのボタンを押すと、同じページを再びロードします。 Page Xに行くのではなく、ページYにする代わりに、このフォームを送信すると、ブラウザ履歴にページYが再度登録されます。 そして、私はすべてのブラウザとデバイスをサポートしています。 ブラウザ履歴の最後のエントリを削除するか、またはブラウザが履歴にページを再度登録しないようにするにはどうすればよいですか?ブラウザ履歴の最後の項目を削除します
0
A
答えて
0
ユーザー履歴を編集することはできません。その点で最善のことは、現在のページの戻るボタンがlocation.replace(pageX)
で指し示す場所が変更され、戻るボタンを押すと同じページが読み込まれずにページXに行くということです。しかし、そのページの履歴が再びpageYになるため、ユーザーが再度押すと問題が発生します。
あなたの最善の選択肢は、最初にフォームを送信してページを更新しないようにすることです。そうすれば、歴史は正しいでしょう。これは、伝統的なメソッドの代わりにAJAXでフォームを送信することによって行うことができます。ここでは、jQueryを使用して伝統的なフォームの送信を防ぎ、AJAXリクエストを作成する例を示します。
$(document).ready(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action'),
data: $(this).serialize(),
success: function (data) {
// if you want it to do something when it's done, put it here
},
error: alert("broke"),
type: "GET"
});
});
});
更新
第三良いオプションはちょうどあなたがあなたのコメントに記載されたものを行うことです。フォームが送信された後にhistory.back()
を使用すると、ユーザ戻るの履歴は、あなたが望むとおりに正確に動作します。一度戻ると、ページXに移動します。 フォワード奇妙な歴史があるだけです。しかし、前進ボタンが押されている可能性は非常に低いです。ユーザーはページに移動しただけで、なぜ彼らは前進しますか?そして、彼らがどこか他の場所に移動するとすぐに、その奇妙なフォワード履歴が上書きされます。
関連する問題
- 1. ブラウザの履歴を削除する
- 2. Gitは2番目のリポジトリと履歴を削除します
- 3. jQueryを使用してブラウザの履歴を削除する
- 4. ブラウザの履歴から前のページURLを削除する
- 5. ブラウザの履歴から現在のページを削除する
- 6. event.preventDefault()AngularjsとUIRouterを使用してブラウザの履歴を削除します
- 7. MVC 3最後のブラウザ履歴エントリを取得するには?
- 8. Git削除履歴コミット
- 9. git履歴のコミットを削除する
- 10. Perforceすべての履歴を削除
- 11. 市場の履歴を削除する
- 12. smartgwtブラウザの履歴
- 13. javascriptのブラウザ履歴
- 14. アンドロイド:ホームページの後に履歴を削除する
- 15. top.location.replaceはSafari/Chromeで履歴項目を作成します
- 16. React Router:ブラウザ履歴の目的は何ですか?ブラウザの履歴は必須ですか?
- 17. whileループの最後の項目からコンマを削除します
- 18. Vue.jsは常に配列の最後の項目を削除します
- 19. は、グリッドビューから最後の項目を削除します - >のLINQ&SQL
- 20. Githubコミット履歴を削除する
- 21. クロムアクセスのブラウザの履歴
- 22. 履歴と履歴からアクティビティを除外します
- 23. 他のリポジトリから履歴情報を削除しますか?
- 24. 角度2の履歴からコンポーネントを削除します
- 25. Selectable(jQuery UI)のブラウザ履歴
- 26. 反応ルータのブラウザ履歴
- 27. React-router-4によるすべてのブラウザの履歴の削除方法
- 28. 履歴をマージしてブランチを削除しますか?
- 29. 削除項目
- 30. Jquery - 最後に追加された項目を削除
完了したら、ページXにブラウザを送信して、人々が戻るボタンを押す必要がないようにできませんでしたか? –
@tylermackenzieいいえ、フォーム提出以外の機能がいくつかあるので、ユーザーは同じページにとどまるべきです。しかし、history.back()を実行しても、それはまだ履歴に残っています。ユーザーがフォワードボタンをクリックすると、再びボタンXをクリックしてページXに行きます。 –