IE9 не обновляет window.location.href в iFrame при использовании кнопки «Назад» браузера.Обходные? - PullRequest
0 голосов
/ 31 декабря 2011

Я использую событие onhashchange javascript, чтобы показать пользователю последовательность «экранов» без перезагрузки страницы для каждого экрана.При размещении этой страницы внутри iFrame событие hashchange не запускается IE9, и window.location.href не обновляется должным образом.

Что я ожидаю: Всякий раз, когда пользователь нажимает "продолжитьmsgstr "чтобы перейти к другому экрану, часть хеша URL будет изменена.Когда используются кнопки браузера «назад» и «вперед», браузер изменяет хэш.Это перехватывается обработчиком события onhashchange в javascript, и отображается правильное содержимое.

Что я наблюдаю вместо этого: Поведение во всех браузерах, поддерживающих событие onhashchange (включая IE9), таковоожидается.Однако, когда рассматриваемая страница загружается внутри iFrame, поведение изменяется в IE9.Вот что происходит, когда я нажимаю кнопку возврата браузера в IE9:

  • Событие hashchange не запускается.
  • window.location.href и window.location.hash остаются такими же, какперед нажатием кнопки «назад»
  • Если я щелкну правой кнопкой мыши по iFrame и увижу свойства iFrame, URL-адрес будет показан с измененным хешем.Т.е. URL в окне свойств не совпадает с window.location.href

Пример игрушки: Поскольку другие сообщают, что такого поведения не видят, я создал здесь пример игрушки: http://jonemo.de/stuff/ie9iframe/test.html. Нажмите state1, затем нажмите state2, нажмите кнопку назад вашего браузера.Current state of iFrame должен читать state1, но в моем IE9 он читает state2 после этой последовательности действий.Мой IE - версия 9.0.8112.16421, это нормальная версия выпуска.

Как я могу обнаружить использование кнопки «Назад» на странице внутри iFrame в IE9?Страницы, содержащие iFrame и внутри iFrame, могут находиться в разных доменах.Я полностью контролирую страницу в iFrame и могу разместить произвольный Javascript на странице, содержащей iFrame.

1 Ответ

0 голосов
/ 31 декабря 2011

window.location.href обновления прекрасно для меня.Если вы получаете доступ из-за пределов iframe, вы уверены, что получаете доступ к iframe.contentWindow.location.href?

...