2017-06-18 7 views

答えて

2

あなたの選択した履歴項目に関連するデータ。その状態が再訪されるとアプリケーションには、それに関連付けられたいくつかのデータがあります。ユーザーが以前に表示していたページの場所、または入力したが決して送信しなかったフォームオプションを保存することができます。

ブラウザは、戻るボタンが押されたときにメソッドを呼び出します。これにより、スタックにプッシュされた最新の状態がポップされます。開発者は、popstateイベントのカスタム処理(状態に関連付けられたデータの使用など)のために、イベントリスナーをwindowオブジェクトに追加する必要があります。

// Below function will get fired for every app-wide popstate 
window.addEventListener('popstate', function(event) { 
    // Can access state data using event.state.data 
}); 
+0

ありがとう、私は理解していますが、私は戻るボタンを押したときにページがURLから再び読み込まれます。ちょうどjavascriptを使っていくつかの変化するコンテナに以前のコンテンツをロードできますか? –

+0

@YuriNkoページロードの間に持続する必要があります。そのため、ここではpushStateを使用することが意図されています。ただし、ブラウザを閉じるまでユーザー情報を保存するsessionStorage/localStorageを試すこともできます。 – JLewkovich

+0

ありがとう、私はすでにthosについて知っています...私はこのアプローチを取って、毎回HTML全体ではなくサーバーからJSONを読み込みます...また、他のコンテンツのリロードも有用ではありません。 –

0

これはプッシュされている状態のユニークな識別子のようなものです。その特定の状態のStateをreplaceする時が来たら、それは役に立ちます。

例:

ストア状態: var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html");

あなたは状態を交換するためにこれを行うことができます: history.replaceState(stateObj, "page 3", "bar2.html");

参考:https://developer.mozilla.org/en/docs/Web/API/History_API#The_pushState()_methoddataオブジェクトは、構造化保存するためのものです

+0

私は置き換える必要はありません。私はそのデータを呼び出す必要がありますが、問題は解決しました。 –

関連する問題