Получить высоту iframe

#jquery #iframe

#jquery #iframe

Вопрос:

В содержимом страницы у меня есть какой-то внешний iframe, проблема в том, что я не хочу, чтобы scroll отображался в этом iframe, но я не знаю, как долго это будет iframe??

 <iframe id="newsletter"
       src="http://www.vimontline.com/"
       frameborder="0"
       width="100%"
       marginheight="0"
       marginwidth="0"
       scrolling="no">
</iframe>
 

Нет проблем с шириной, проблема у меня с высотой, я хочу удалить scrool из моего iframe, но я не хочу, чтобы он кодировал как height =»100px», есть идеи с jquery, как получить iframe внутри height, чтобы я добавил к своему идентификатору эту высоту?

Комментарии:

1. Вы не можете использовать jQuery для доступа к содержимому iframe файла, в котором есть внешний URL src -адрес. Другими словами — это невозможно.

Ответ №1:

Вы не можете получить доступ к этой информации с родительской страницы. Если вы управляете URL-адресом, загруженным в iframe, то вы можете указать его родительскому элементу изменить размер после загрузки DOM.

Код в iframe:

 parent.resizeFrame(document.body.scrollHeight)
 

Код для родительской страницы:

 function resizeFrame(height) {
    document.getElementById('blogIframe').style.height = parseInt(height, 10)   "px";
}
 

Возможно, вам потребуется добавить немного больше к высоте, чтобы предотвратить несоответствие полосы прокрутки в разных браузерах.

Комментарии:

1. Я не могу управлять внешней страницей?

2. Тогда вы не сможете достичь своей цели. Извини, приятель.

Ответ №2:

динамическое изменение размера iframe может быть достигнуто (междоменное) с помощью этих скриптов iframeResizer.

Вам нужно будет запустить скрипт на родительской странице (iframeResizer.min.js ) и еще один внутри iframe (iframeResizer.contentWindow.min.js ).

Он использует API postmessage, и это сработало для меня

Я надеюсь, что это поможет

Комментарии:

1. К сожалению, для того, чтобы это работало, вам нужно будет контролировать код iframe

Ответ №3:

Как говорит FreeAsInBeer, это не то, что вы действительно можете сделать в целях безопасности, просто для получения дополнительных разъяснений см.:

Политика того же происхождения amp; Совместное использование ресурсов из разных источников

Это единственное, что я видел в этом: http://css-tricks.com/cross-domain-iframe-resizing / но я бы тоже этого не рекомендовал.

Ответ №4:

Вы можете использовать приведенный ниже js-код, чтобы получить высоту iframe

 setTimeout(function () {
                $('iframe#newsletter').css('height', $(window).height()   'px');
            }, 1000);
 

Это решение будет работать для вас, вам не нужно определять высоту, оно автоматически определяет высоту