Я использую, Angular.js 1.3, с ui-router. У меня есть 3 страницы, page1.html, page2.html, page3.html.
Когда пользователь нажимает на страницу1, откроется страница 2, но я хочу сохранить состояние прокрутки страницы 1, где пользователь был нажат до щелчка, чтобы после нажатия кнопки «Назад» он приземлился на такое же состояние прокрутки.
Чтобы решить эту проблему, я открыл page2.html над page1.html, в IFRAME, и придавая ей абсолютную позицию для отображения над page1.html, и я использую:
history.pushState({}, '', '/page2.html');
изменить URL. Эта реализация работает нормально.
Теперь, когда пользователь нажимает на ссылку на page2.html, он должен открыть page3.html, как нормальная связь, для которой я использовал:
$state.go("page3")
Проблема в настоящее время государственные chages и PAGE3 .html загружается, но url по-прежнему является /page2.html, url не изменяется.
Я даже пробовал:
history.pushState({}, '', '/page3.html');
Still URL не меняется. Кто-нибудь знает, почему это происходит.
Я не уверен, что это сработает.но я думаю, вы находитесь в 'Iframe', поэтому его не меняет этот URL. вы можете попробовать 'eval', когда находитесь на стр. 2. может быть 'parent.eval ($ state.go (" page3 "))' что-то вроде этого. –
Можете ли вы разместить JSFiddle? –
Извините, я не могу опубликовать его на jsfiddle. Но да, я могу понять, что ссылка находится в iframe, поэтому она не меняет URL (возможно). Но js-код работает нормально, history.pushState работает (исходный отладчик Js), но он не влияет на URL-адрес. Выскажу больше о iframe. –