私は自分のウェブサイトでテキストエディタを構築しています。ワークフローは次のとおりです。
/list
で、ユーザーは編集したいエントリをリストから選択し、/edit/[article_id]
に移動します。/edit/[article_id]
にリダイレクトします。これにより、編集された作業が反映されます。サーバーはまた、編集が成功したことを示すためにページ上のフラッシュメッセージをアクティブにします。この時点で、ユーザーはおそらく/list
に戻り、ブラウザの[戻る]ボタンをクリックします。これにより、送信した回数に応じて、繰り返しエディターに戻されます。
ページのどこかに戻るボタンを配置しようとしましたが、多くのユーザーは単にそれを無視しています。
フラッシュメッセージシステムにも影響を与えるため、AJAXを介して投稿を投稿したくありません。
私がやりたいのは、ユーザーが送信したときに、履歴リストの最後のエントリを、その長さを変更せずに置き換えることです。出来ますか?
これを試してください
_window.location.replace(url);
_
replace()
を使用した後、現在のページはセッション履歴に保存されません。つまり、ユーザーは[戻る]ボタンを使用してそのページに移動できなくなります。
Window.close()を使用します:
close();
注:現在のタブが暗示されます。これは同等です:
window.close();
または、別のウィンドウを指定することもできます。
そう:
function close_window() {
if (confirm("Close Window?")) {
close();
}
}
hTMLの場合:
<a href="javascript:close_window();">close</a>
または:
<a href="#" onclick="close_window();return false;">close</a>
ここでfalseを返すと、イベントのデフォルトの動作が防止されます。それ以外の場合、ブラウザはそのURLに移動しようとします(明らかにそうではありません)。