2017-03-21 21 views
1

私のウェブサイトにテキストエディタを構築していますが、ワークフローは次のとおりです。ブラウザの履歴から現在のページを削除する

  1. /listでは、ユーザーは、彼らが/edit/[article_id]にそれらを取るリストから編集したい項目を選びます。
  2. ユーザーは作業を行い、[送信]をクリックします。
  3. サーバーはその物を処理し、/edit/[article_id]にリダイレクトします。これは今編集された作業を反映します。サーバーはまた、ページ上でフラッシュメッセージをアクティブにして、編集が成功したことを示します。

この時点までに、ユーザーはおそらく/listに戻り、ブラウザの[戻る]ボタンをクリックします。これは、彼らが提出した回数に応じてエディタに繰り返し戻されます。

私はページのどこかに戻るボタンを置こうとしましたが、多くのユーザーがそれを無視しています。

私はAJAXを介して送信した投稿を、フラッシュメッセージシステムにも影響するため、投稿しないでください。

私がしたいことは、ユーザーが長さを変えずに送信したときに履歴リストの最後のエントリを置き換えることです。出来ますか?

答えて

1

は、現在のページは、ユーザーがそれに移動するには、[戻る]ボタンを使用することはできませんつまり、セッション履歴に保存されませんreplace()を使用した後、この

window.location.replace(url); 

を試してみてください。

+0

したがって、 '/ list'に' window.location.replace() 'を使うべきですか? – starleaf1

0

使用はwindow.close():

close(); 

注:現在のタブが暗示されます。これは同等です:

window.close(); 

または別のウィンドウを指定することができます。

<a href="javascript:close_window();">close</a> 

か::

ので:HTMLと

function close_window() { 
    if (confirm("Close Window?")) { 
    close(); 
    } 
} 

<a href="#" onclick="close_window();return false;">close</a> 

あなたはイベントのデフォルト動作を防ぐために、ここではfalseを返します。そうしないと、ブラウザはそのURLに移動しようとします(明らかにそうではありません)。

関連する問題