2013-05-29 3 views
0

Я делаю приложение, которое использует множества фреймов. Проблема, с которой я столкнулась, заключалась в том, что каждый раз, когда я обновлял страницу, основной фрейм был перенаправлен на index.php из текущего URL-адреса в фрейме. Рамка перезагрузки сделает трюк, но это не очень хорошее удобное решение.Изменение состояния родителя из iframe

Чтобы обойти эту проблему, я подумал об использовании изменений состояния браузера html5. Изменение URL-адреса родительского фрейма не вызывает беспокойства, но это не изменяет состояние. Простое обновление снова перенаправит всю вещь на индексную страницу. Я попытался использовать history.js, чтобы подтолкнуть текущий URL-адрес основного фрейма к истории, так что каждый раз, когда я обновляюсь или возвращаюсь назад, он по крайней мере останется на одной странице.

Проблема в том, что я не могу понять, как изменить состояние родителя из дочернего кадра. И родительский, и дочерний url находятся в одном домене. Можно ли это сделать с помощью history.js? Если да, то как?

Заранее спасибо.

+0

'frameset' не поддерживаются HTML5, поэтому вы не можете использовать с ними какие-либо функции HTML5. Пожалуйста, также уточните свой вопрос, теперь у вас есть 'frameset' и 'iframe', это запутывает ... – Teemu

+0

Содержимое фрейма находится в html5, и они поддерживают состояние истории отлично. Приложение, о котором я говорю, имеет два кадра. Основной рама и опорная рама. Главное в том смысле, что это тот, где отображаются страницы. Опорная рама имеет лишь несколько поддерживающих функций. Я пытаюсь установить состояние родителя из дочернего кадра – Enihr

+0

[Устаревшие функции W3C] (http://www.w3.org/TR/html5/obsolete.html#non-conforming-features) – Teemu

ответ

0

Вы можете иметь ссылку на родительском окно в пределах плавающего фрейма по:

parentWindow = window.parent; 

С этого момента, вы можете вызывать любые функции из вашего плавающего фрейма, которые имеют непосредственное влияние на родителях, как это:

parentWindow.location.reload(); 

UPDATE

в случае, если вы хотите сохранить состояние плавающего фрейма то, что compleca немного вещей. Вам необходимо отправить его (состояние iFrame) родительскому, а затем отправить форму, которая отправит состояние Iframe на сервер. Тогда ответ сервера должен загрузить iFrame в правильное состояние.

+0

Я более конкретно пытаюсь обработать обновление и сохранить состояние кадра, чтобы они не перенаправлялись на первый URL-адрес фрейма. – Enihr

Смежные вопросы