window.history.back() перезагружает страницу в Internet Explorer, когда находится внутри iframe?

Я заметил странное поведение Internet Explorer, когда моя страница находится внутри iframe. Кажется, что iframe перезагружается при вызове window.history.back(), хотя должен измениться только хэш в URL-адресе. Когда страница не находится внутри iframe, она ведет себя правильно и не перезагружает страницу. Любая идея, почему это происходит и как это предотвратить?

Я создал скрипт, демонстрирующий это в IE9:

http://jsfiddle.net/peh96/5/

jsfiddle использует iframe, поэтому поведение будет поведением iframe. Нажатие «#foo» и «#bar» изменит хэш в URL-адресе. Теперь нажатие на ссылку «НАЗАД» вызовет вызов window.history.back(). Обратите внимание, что временная метка меняется, когда вы это делаете, указывая на то, что страница перезагружается.

В качестве альтернативы, если вы загрузите iframe напрямую:

http://fiddle.jshell.net/peh96/5/show/

вы заметите, что временная метка не меняется при нажатии кнопки «НАЗАД». .

Это проблема только IE, так как Chrome и Firefox совместимы независимо от того, находятся они внутри iframe или нет.

Есть идеи, как предотвратить эту перезагрузку?

6
задан Blackbird 26 July 2012 в 14:21
поделиться