2010-08-19 2 views

ответ

3

IFRAME нужно отправить на главную страницу его размер тела.

Для современных браузеров вы можете использовать parent.postMessage из IFRAME и иметь прослушиватель на главной странице, чтобы получить значение и изменить размер IFRAME.

Для более старых браузеров, вы можете использовать уловки как передачи данных т.е. через windows.name или window.location.hash Но с этими трюками вам придется опрашивать с setInterval для проверки изменений.

+0

Спасибо большое за детали –

+1

вот пример статьи и кода уточнения этого метода хеш-хака: http://www.onlineaspect.com/2010/01/15/backwards-compatible- postmessage/ – Kyle

+0

И вот простой пример в stackoverflow: http://stackoverflow.com/questions/5606920/cross-domain-iframe-resizer/6940531#6940531 – thomax

-2

попытка вызова функции родительского окна из вашего фрейма

+3

Это не работает кросс-домен – Mic

0

@Rohit Я бы предложил взглянуть на этот сайт. Это должно решить вашу проблему http://benalman.com/projects/jquery-postmessage-plugin/

Функциональная демо можно найти здесь: http://benalman.com/code/projects/jquery-postmessage/examples/iframe/

Я планирую использовать эту технику для проекта шахты после того, как я увидел, что я в состоянии вычислить высоту по всей области используя запрос и postmessage. Хорошо, это будет по умолчанию document.location.hash для старых браузеров.

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