web-dev-qa-db-ja.com

window.location.assign()とwindow.location.replace()の違い

両方が新しいページにリダイレクトされる場合、window.location.assign()window.location.replace()の違いは何ですか?

89
Bakudan

window.location.assign("url")を使用すると、新しいドキュメントがロードされます。 window.location.replace("url")を使用すると、現在のドキュメントが置き換えられ、現在の履歴がそのURLに置き換えられるため、ロードされた前のドキュメントに戻れなくなります。

リファレンス: http://www.exforsys.com/tutorials/javascript/javascript-location-object.html

107
RedAnthrax

MDN:によれば

assign()メソッドとの違いは、replace()を使用した後、現在のページがセッション履歴に保存されないことです。つまり、ユーザーは[戻る]ボタンを使用して、それ。

29
Matt Ball

違いは、履歴の処理方法です。 「置換」は履歴を提供しませんが、「割り当て」は提供します。

28
martona
  1. location.assign():

    それにパスを渡すことにより、ルートパスを割り当てます。割り当ては、パスが割り当てられた後でも履歴を提供します。

    使用方法:値を渡す必要があります。

    例:location.assign( " http://google.com ")

location.assign()

  1. location.replace():

    履歴を保持したくない場合は、パスを置き換えるのに役立ちます。パスを置き換えると、履歴は表示されません。

    使用方法:値を渡す必要があります。

    例:location.replace( " http://google.com ")

location.repalce()