2010-02-20 3 views
1

В Firefox есть annoying bug, где навигация в динамически создаваемом iframe, который затем удаляется с помощью Javascript, приводит к невозможности вернуться с помощью кнопки возврата назад (вы должны использовать раскрывающийся список и перемещаться назад еще пару страницы).Разметка переходов iframe Кнопка возврата Firefox - обходной путь?

Я использую форму в iframe, которая проверяет и отправляет данные. При проверке формы/проверки данных страница в iframe обновляется. Это нарушает обратную кнопку Firefox, как указано выше.

Мне нужно решение, чтобы попытаться решить эту проблему, и я в настоящее время пытался несколько разные вещи, без особого успеха:

  • Сохранение каждого обновления IFrame страницы в переменной сессии (PHP), а затем с помощью history.go(-{session var}) в моем коде jQuery для перехода назад. Однако это, похоже, работает только при переходе на страницу перед загрузкой iframe, а не на страницу, где загружается iframe (в дальнейшем она по-прежнему прерывает кнопку возврата)
  • Скрытие iframe, а не его удаление - работает, но требует нескольких щелчков кнопки «назад» и вызывает «вы хотите повторно отправить эти данные?». message
  • Перезагрузка iframe, когда пользователь его закрыл. Никакое преимущество, делая это, как будто вы возвращаетесь, вы должны все еще пройти через все предыдущие губбины iframe.

Любые предложения оценены, но обратите внимание: я хочу использовать iframe, не хочу использовать ajax и хотел бы использовать решение, совместимое с кросс-браузером (ha!).

Если вы заинтересованы, шаги, чтобы воспроизвести эту проблему:

  • В Firefox попробовать пример Iframe, который загружает Google на FancyBox странице: http://fancybox.net/home
  • Искать что-то, то есть загрузить новую страницу в IFRAME
  • Закрыть FancyBox кадр
  • Try и вернуться назад, не прибегая к списку назад ниспадающего

Кстати, IE обрабатывает этот сценарий более изящно, чем Chrome или Firefox!

+0

Можете ли вы опубликовать URI для тестовой страницы, извините, но я слишком ленив, чтобы на самом деле построить ее самостоятельно. – guzart

ответ

1

Я отказался от этого, попробовал все под солнцем. Приступая к публикации данных через методы AJAX jQuery, которые не будут добавлять элемент истории.