2013-07-31 2 views
0

Вот поток событий на моем веб-сайтевнедрения истории в веб-сайт не работает

  1. Перейти к [http://example.com]. На веб-странице отображается содержимое от http://example.com/foo, хотя адресная строка браузера указана http://example.com

    Текст на веб-странице запрашивает у пользователя панель выписки. Пользователь нажимает на ссылку и берется

  2. [http://example.com/bar]

    текст на веб-странице запрашивает у пользователя, чтобы проверить Баз. Пользователь нажимает на ссылку и берется

  3. [http://example.com/baz]

    текст на веб-странице запрашивает у пользователя, чтобы проверить QUX. Тем не менее, пользователь нажимает на кнопку браузера обратно и принимается

  4. [http://example.com/bar]

    текст на веб-странице запрашивает у пользователя, чтобы проверить Баз. Тем не менее, пользователь нажимает кнопку «Назад в браузере» и берется ... FAIL! Здесь браузерный браузер должен стать [http://example.com], но он совсем не меняется.

код реализации все это довольно straighforward

var goTo: function(uri) { 
    get uri via XMLHttpRequest 
    swap content 
    history.pushState(null, null, uri); 
} 

window.addEventListener("popstate", function(event) { 
    var uri = location.pathname.replace("\/", ""); 
    goTo(uri); 
}, false); 
+0

Ваши ссылки не работают. 'example.com' является зарезервированным доменом - они никогда не будут работать. –

ответ

0

Проблема решена. См. HTML 5 History - window.pushState not working для получения дополнительной информации, но, тем не менее, я не могу иметь history.pushState() внутри события popstate. Как только я изолировал их, он отлично работает.

Смежные вопросы