Я использую этот тип строки в ответе JS
if (history && history.pushState){
history.pushState(null, null, '<%=j home_path %>');
}
но когда я нажимаю back
в браузере, я вижу код JS ответа вместо предыдущей страницы.
Есть ли способ заставить кнопку "Назад" работать, чтобы она повторно запрашивала страницу последнего URL-адреса (до home_path
как pushStated в?
Обновление
Я нашел this.. похоже, что у другой проблемы есть такая же проблема.. History.js не исправляет ее либо
Итак, чтобы подтвердить некоторые комментарии там.. Это происходит только в chrome
Что я думаю
Я думаю, что корень всего этого заключается в том, что popstate запрашивает один и тот же тип pushstate documentemtn (js response). Что нужно сделать, так это по запросу popstate html-ответ. Я просто не знаю, как
Дополнительные обновления:
видя http://railscasts.com/episodes/246-ajax-history-state, он упоминает, как использовать
$(window).bind("popstate", function() {
$.getScript(location.href);
});
это решает проблему, но в соответствии с пониманием jQuery $.getScript() с помощью кэширования ajax будет добавляться отметки времени.., которые загрязняют URL-адрес. он не работает снова с тем же эффектом.
Кто-нибудь знает, как это решить?
Еще больше обновлений
Я отслеживал маршруты этой проблемы по всему интерфейсу и заканчивал с проблемой в chrome, которая указывает на проблему с рельсами (firefox works fine) и проблема в rails-ujs относительно того, не включая Vary Header в ответах
Пример можно найти здесь