Есть 2 веб-приложения, наша и другая команда. Веб-приложение другой команды является http://otherteam.com и наше приложение http://myteam.comСложная история URL-адресов на приложении марионетки базовой линии и обратно
На http://otherteam.com странице, они имеют HREF ссылку, указывающую на страницу, которая http://myteam.com/config?lang=en. Когда наше веб-приложение (на самом деле задача Marionette AppRouter) получает такой маршрут или путь, он будет анализировать его и устанавливать конфигурацию языка, а затем у нас есть код для перенаправления пользователя на конечную веб-страницу, которая равна http://myteam.com/landingpage
Код который мы используем, является
Backbone.history.navigate('landingpage', {replace: true});
перенаправить пользователя на конечный пункт назначения.
К сожалению, когда пользователь нажимает кнопку «Назад» браузера, он не возвращается к http://otherteam.com. Он вернется к http://myteam.com/config?lang=en, который по-прежнему является нашим собственным приложением. Что происходит, так это то, что маршрутизатор приложений Marionette снова проанализирует его, как описано выше. Пользователь будет просто вернуть к http://myteam.com/landingpage
Так что я изменил
// Backbone.history.navigate('landingpage', {replace: true})
и теперь я использую
history.replaceState({}, '', 'landingpage');
При нажатии кнопки Back, URL-адрес на верхней панели beocmes http://myteam.com/config?lang=en , но он больше не перезагружает нашу приземляющуюся площадку, что хорошо. Тем не менее, ничего не происходит со страницей, пока я не нажму кнопку «Назад» еще раз. Сделав второй щелчок на кнопке «Назад», я вернусь к http://otherteam.com, что здорово, но мне пришлось дважды нажать кнопку «Назад».
Это было одно из моих предложений. – devwannabe