I am trying to find a way to detect when the user has pressed the back / forward button in their browser.
I am using backbone to handle routes, along with backbone to render my views.
The issue is I can not hook into this page change event from anywhere.
I tried putting a log in my initialize function for my views .. but it is not tripped when i use the back button.
I am really not sure how else to detect this page change.
You can bind a callback to Backbone route
event:
Backbone.history.on('route', function () {
// Do your stuff here
});
You can use Backbone.history.getFragment()
to know were you are standing.
When the back button is pressed a popstate event is triggered.
I'm using this piece of code:
// listening for the browser's back button
window.addEventListener('popstate', function(e) {
router.navigate(Backbone.history.getFragment(), { trigger: true, replace: true });
});
you can extend the Backbone.Router
and overload the route
and the open
method. You have all page changings handled in those two methods. So just recopy them from the backbone file, and play with it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With