Я нашел решения для манипулирования всем, кроме того, что мне нужно.Вот сценарий
Так же, как в GMail - основной контент представлен в iframe.Нажатие ссылки на главной странице предназначено для iframe.Это работает хорошо и без проблем.На данный момент, если я нажму «Назад» в браузере - iframe вернется.Это хорошо, потому что кеш задействован и страница не перезагружается.
Добавление общей логики изменения хеша ломает все.Теперь, когда вы наносите ответный удар, браузер изменяет значение has, но НЕ меняет историю iframe.Я попытался получить доступ к истории этого конкретного iframe frames['myiframe'].history.back()
, но он все еще меняет хеш без изменения источника iframe.
Я нашел подлый history.replaceState(temp, '', iframelocation)
, и это работает без проблем при переходе по ссылкам, новозвращаясь назад, он на самом деле пытается загрузить местоположение iframe в главном окне.
Я в растерянности.Я знаю, что GMail не запрашивает всю информацию каждый раз, когда вы отбрасываете назад или вперед.Так как это сделать?Использует ли он несколько iframe и меняет ли он видимый?
Спасибо!
PS Протестировал простую ситуацию: создайте iframe и измените ссылку с помощью некоторого <a href="child" target="iframe">a
Теперь измените хешчерез location.href = 'something'
Пока все хорошо.Теперь, если вы специально скажете iframe вернуться в историю - он не будет frames['iframe'].contentWindow.history.back()