щелчок «назад» из окна iframe меняет родительское окно - PullRequest
0 голосов
/ 22 марта 2012

У меня есть скрипт, который пишет iFrame, который загружает страницу.Я создал JSFiddle, чтобы прояснить ситуацию:

ссылка JSFiddle загружает CNN в кадр

Это загружает CNN в кадр.Если вы прокрутите вниз в рамке к новостям и нажмете на новые статьи, а затем «назад», то в Safari и Google Chrome будет какое-то странное поведение: нажатие «назад» не возвращает фрейму «назад», оно беретвесь родительский кадр "назад".Как я могу предотвратить это?

Также странным является тот факт, что это не всегда происходит.Попробуйте сами, нажмите не менее 5-10 ссылок, и вы увидите, что скрипка время от времени будет сбрасываться сама.И это не должно происходить ...

Такое поведение, кажется, происходит только в Safari, в Chrome, Opera и IE, похоже, нет этой проблемы ...

1 Ответ

0 голосов
/ 22 марта 2012

Браузер регистрирует события истории, когда вы нажимаете разные URL-адреса, поскольку iframe является частью страницы, на которой вы находитесь, и регистрирует щелчок внутри iframe как событие истории родительской страницы.Разные браузеры могут вести себя несколько по-разному - я ожидаю, что FF и Chrome будут по-разному, а IE ведет себя немного по-разному.Тем не менее, тестирование вашего примера и Chrome, и IE работало точно так же, как и ожидалось.

Итак, поясним: загрузка JSFiddle является историческим событием для браузера.Нажатие кнопки для создания и загрузки Iframe НЕ является историческим событием.Нажатие на ссылку URL в окне Iframe является историческим событием.

На данный момент у вас есть 2 состояния, которые браузер запоминает, и вы можете переходить от одного к другому в истории.

...