ユーザーがブラウザで戻る/進むボタンを押したときに検出する方法を見つけようとしています。バックボーンルート - ブラウザの戻るボタンの検出
バックボーンを使用してルートを処理し、バックボーンを使用してビューをレンダリングしています。
問題はどこからでもこのページ変更イベントにフックできません。
私のビューの初期化関数にログを書き込もうとしましたが、戻るボタンを使用するとトリップしません。
このページの変更を検出するにはどうすればよいかわかりません。
ユーザーがブラウザで戻る/進むボタンを押したときに検出する方法を見つけようとしています。バックボーンルート - ブラウザの戻るボタンの検出
バックボーンを使用してルートを処理し、バックボーンを使用してビューをレンダリングしています。
問題はどこからでもこのページ変更イベントにフックできません。
私のビューの初期化関数にログを書き込もうとしましたが、戻るボタンを使用するとトリップしません。
このページの変更を検出するにはどうすればよいかわかりません。
Backbone.Router
を使用し、アプリケーションを起動するときにはBackbone.history.start()
を忘れないようにしてください。
いくつかの有用な情報
は hereと here実際には、第2のリンクは記事ではありませんが、ブログを見つけることができます。そしてそれを書いた人は本当にその話題についてたくさん知っているようです。
UPD:アイデアは、あなたのURLが変わったときに、バックボーンのルータファイアバインドされたメソッドです。だからあなたはこの方法にあなたのロジックを置き、この方法でそれを追跡する必要があります。たぶんそれは非常に自動ではない方法で、いくつかのコードを書くのにかかるだろうが、私はそれがうまくいくと思う。
Backbone.Router
を拡張して、route
とopen
メソッドをオーバーロードすることができます。これらの2つの方法ですべてのページ変更を処理しました。だから、バックボーンファイルからそれらを再コピーし、それを再生してください。
明らかにしてもGitHubには、押されたボタンを検出する方法を知りません。) は、彼らは、このコードを使用します。
slideTo: function (a) {
var b = this.pathFromURL(a),
c = this.frameForPath(b),
d = $("#slider .frame-center").attr("data-path") || "";
c.is(".frame-center") || (d == "/" || b.split("/").length > d.split("/").length ?
this.slideForwardTo(a) : this.slideBackTo(a))
}
あなたがバックボーンroute
イベントにコールバックをバインドすることができます。
Backbone.history.on('route', function() {
// Do your stuff here
});
あなたはあなたが立っていたことを知るためにBackbone.history.getFragment()
を使用することができます。
スニペットの最後に閉じ括弧がありません) – fadomire
戻るボタンを押すとポップステートイベントが発生します。
私は、コードのこの部分を使用しています:
// listening for the browser's back button
window.addEventListener('popstate', function(e) {
router.navigate(Backbone.history.getFragment(), { trigger: true, replace: true });
});
ええ、私はそれを読んで。アイデアは、あなたのURLが変わったときに、バックボーンのルータファイアバインドされたメソッドです。だからあなたはこの方法にあなたのロジックを置き、この方法でそれを追跡する必要があります。たぶんそれは非常に自動ではない方法で、いくつかのコードを書くのにかかるだろうが、私はそれがうまくいくと思う。 – Ph0en1x
@ Ph0en1x BackboneのHistoryオブジェクトを使用すると、サイト内をナビゲートするときに戻るボタンが押されたときに発生する 'popstate'イベントを監視するので、ソリューションを提供できるということは間違いありません。しかし、あなたの答えは、それがあなたが言っていることではなく、OPがBackbone.Historyを使って彼の問題を解決する方法であることを明確にしていません。 –
おかしい、その答えには多くのマイナスがある。しかし、それ自体は2015年末にも意図的に修正されています。しかし、人々は慎重に読んでみたくないと思っているように見えます。彼らはスニペットをコピー・ペーストしたいだけです。 – Ph0en1x