Кнопка возврата Firefox против фреймов - PullRequest
3 голосов
/ 10 марта 2011

В Firefox, если window.location iframe изменен, он заполняется историей окна верхнего уровня.

Если пользователь теперь нажимает кнопку «Назад» браузера, содержимое iframe будет меняться, а не возвращаться браузером к предыдущей HTML-странице.

Это совершенно неправильно для некоторых архитектур.

Есть ли способ с помощью JavaScript, чтобы предотвратить это Firefox (3.x)?

(Пожалуйста, придерживайтесь только этого вопроса, а не почему / когда / как следует использовать iframes по сравнению с другими методами.)

Ответы [ 3 ]

2 голосов
/ 13 марта 2011

Использование .location.replace

0 голосов
/ 17 июня 2011

У меня та же проблема, и я изучал возможные пути ее решения, когда читал это. Я не знаю, решили ли вы проблему, но я думаю, что собираюсь использовать событие unload в окне IFrame для уведомления родительского окна, когда оно выгружено.

Если iframe закрывается методом 'valid', переменная устанавливается в родительском элементе, чтобы сказать, что iframe должен выгружаться

Если родитель перезагружает / изменяет src iframe, переменная устанавливается так, чтобы сказать, что выгрузка ожидается

Если в iframe произошла неожиданная выгрузка, я предполагаю, что это была кнопка «Назад», и соответственно обновите родительскую страницу (например, сделайте еще один шаг назад в истории родителя или сделайте что-нибудь еще).

Единственный уродливый случай: если родительская страница выгружена, а iframe также выбрасывает выгрузку - в зависимости от того, насколько быстро изменяется родительская страница, вы можете получить условие гонки, когда обработчик выгрузки родительского iframe выгружается или не срабатывает.

0 голосов
/ 10 марта 2011

Есть ли способ с помощью JavaScript, чтобы предотвратить это Firefox?

Введите в адресной строке about:config и найдите параметр «browser.cache.memory.enable» и измените значение на false. Затем отключите также кеш в файловой системе с опцией «browser.cache.disk.enable». После этого это поведение должно исчезнуть, пока теория.

П.С .: Я никогда не пробовал это лично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...