Вы должны использовать событие window.statechange
, которое было изобретено History.js, поскольку window.popstate
является слишком общим.Вы реагируете на него, привязывая к нему обработчик событий, обычно так:
History.Adapter.bind(window, 'statechange', function () {
var state = History.getState();
// Your code goes here
});
Или вы можете использовать абстракцию маршрутизатора, что должно быть проще.Я написал один, например, под названием StateRouter.js .Несколько простых примеров кода:
var router = new staterouter.Router();
// Configure routes
router
.route('/', getHome)
.route('/persons', getPersons)
.route('/persons/:id', getPerson);
// Perform routing of the current state
router.perform();
// Navigate to the page of person 1
router.navigate('/persons/1');
У меня также есть скрипка для демонстрационных целей .