Iframe с автоподъемом - PullRequest
       16

Iframe с автоподъемом

2 голосов
/ 14 апреля 2010

Мне нужно автоматически высот iframe с междоменным src, я пытался с javascript, но я получаю «Отказано в доступе», когда я пытаюсь получить высоту iframe contentWindow. кто-нибудь знает какой-либо метод?

Ответы [ 3 ]

3 голосов
/ 12 мая 2010

ItzWarty прав: родительская страница не может связаться с дочерним документом, даже чтобы узнать его высоту.Еще в 2008 году Майкл Махемхофф опубликовал подробный обзор междоменной связи с IFrames , который может дать вам некоторые рекомендации.

Однако надежда уже на подходе - HTML5 включает в себя улучшениеэта ситуация называется " Обмен сообщениями между документами ", которая поддерживается в Firefox 3, Safari 4, Chrome 2, Opera 9.2 и даже IE ... 8. Если ваши пользователи используют только эти поддерживаемые браузеры, вы можетеиспользуйте его.

Возможно, вы могли бы установить для атрибута «scrolling» элемента IFRAME значение «auto» по умолчанию и проверить на window.postMessage - в случае успеха установите «scrolling» на «no» и используйтеФункция для изменения размера IFRAME.

Недавно я столкнулся с подобной проблемой (родительская страница из domain.tld, обрамляющая страницу в blog.domain.tld), но я смог использовать «старый документ ».domain hack", который описал Mahemoff, хотя он не поддерживается в Opera.

Удачи.

1 голос
/ 24 мая 2010

Проблема домена - это только одна проблема, с которой вы сталкиваетесь - IE8 - другая. Даже если вы можете получить доступ к iframe, IE8 не может точно получить информацию body.clientHeight. Firefox работает, хотя ...

1 голос
/ 15 апреля 2010

Если вы создали прокси на своем сервере, который извлекал контент, JavaScript не имел бы этого ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...