私は、その上の URL を持つ単なるページであるオーバーレイを開きたいバックボーン アプリを持っています。このオーバーレイで、別のページ/URL をナビゲートすることもできます。したがって、オーバーレイが閉じられたら、オーバーレイが開かれる前の状態にハッシュを戻したいと思います。リンクによってオーバーレイが開かれるため、以前の状態からハッシュを取得できません。
ハッシュが変更されたときに以前のハッシュを取得する方法はありますか?
私は、その上の URL を持つ単なるページであるオーバーレイを開きたいバックボーン アプリを持っています。このオーバーレイで、別のページ/URL をナビゲートすることもできます。したがって、オーバーレイが閉じられたら、オーバーレイが開かれる前の状態にハッシュを戻したいと思います。リンクによってオーバーレイが開かれるため、以前の状態からハッシュを取得できません。
ハッシュが変更されたときに以前のハッシュを取得する方法はありますか?
hashchange イベントには「oldURL」フィールドがあります。すべての「oldURL」(または最後の URL のみ) を保存し、必要な場合は、実際の URL を最後の URL に変更します。
ソース: https://developer.mozilla.org/en/DOM/window.onhashchange
私はこの小さなハックを思いついた。オーバーレイを開くと、を保存しwindow.history.length
ます。オーバーレイが閉じたらwindow.history.go
、保存されている長さと実際の長さの差を呼び出して1を引きます。
var appStateActions = {
overlayPre: function(){
this.historyPosition = window.history.length;
},
overlayExit: function(){
window.history.go(this.historyPosition - window.history.length -1);
}
}
残念ながら、これは履歴の制限のために機能しません。したがって、履歴の長さの制限に達した後、間違った結果が得られます。