2016-09-08 5 views
-2

www.mysite.com/entry/1私はボタンをクリックすると開くdivのサイトを持っています。jQuery:window.historyの代わりに

それは私がwindow.history.pushState()を作る開くと、たとえば:

www.mysite.com/entry/1#12345678 

私はこれでフィルタを設定することができますが、私はフィルタを設定するので、毎回divを開設し、ハッシュ値の変化と私はwindow.history.pushState("", "", url+newHash);

を作ります

これを行うと、たとえば10回、私はwindow.historyに10種類のURLを持っています。

私は履歴に最後のurl-hash値しか持たないようにこれを上書きすることはできますか?

理由は、ブラウザの戻るボタンをクリックすると、URLはwww.mysite.com/entry/1になり、すべてのハッシュ値を調べる必要がないからです。

助けてもらえますか?

答えて

1

はい、pushStateではなくreplaceStateMDN,spec)を使用します。

+0

しかし、他の状態ではなく、値があるURLだけを上書きすることはできますか? – Zwen2012

+0

@ Zwen2012: 'replaceState'を使うと、一番上の履歴エントリを置き換えます。たとえば、www.mysite.com/entry/1エントリを 'www.mysite.com/entry/1#12345678'に置き換えます。ヒストリースタックやデータの変更は深くはできませんが、質問に基づいて行う必要はありません。 –

+0

OK、それは質問の私のせいだった。どのくらいの頻度でハッシュ値URLが変更されても、「www.mysite.com/entry/1」に戻る必要があります。たとえば、ヒストロイで10個のフィルタ - > 10個のハッシュ・ノイズをクリックします。ブラウザの履歴をクリックすると、「www.mysite.com/entry/1」に行きます。 – Zwen2012