#javascript #html5 #css3 #iframe
Друзья,перелопатил половину интернета, но рабочего решения так и не нашел. В общем, в iframe необходимо загрузить сайт и взять его высоту, пробовал плагин iFrame Resizer, высота не менялась, стандартные 150рх, пробовал easyXDM - ошибка, пробовал вот такую штуку function doIframe() { o = document.getElementsByTagName('iframe'); for (i = 0; i < o.length; i++) { if (/\bautoHeight\b/.test(o[i].className)) { setHeightIframe(o[i]); $(o[i]).load(function() { doIframe(); }); } } } function setHeightIframe(e) { if (e.contentDocument) { $(e).height(e.contentDocument.body.offsetHeight + 35); } else { $(e).height(e.contentWindow.document.body.scrollHeight); } }
Ответы
Ответ 1
Если я правильно понял Ваш вопрос: Вы хотите загрузить в iframe некоторый контент, но проблема в том, что Вы не знаете высоту загружаемого контента, и соответственно не знаете какую высоту iframe-а Вам нужно указать. Я сталкивался с подобной проблемой, когда мы разрабатывали виджеты, например для edx. Вы не можете выставить высоту iframe во "внутренностях" iframe. Как вариант, Вы можете посчитать высоту во "внутренностях" iframe и передать ее в js который подключает iframe в родительском окне. Для того чтобы связать js во "внутренностях" iframe и js в родительском окне, мы использовали библиотеку от Mozilla jschannel. Обратите внимание, что высота загруженного контента не всегда будет одинаковой, к изменению высоты могут привести как изменение ширины окна браузера (если у Вас респонсив страница) так и действия пользователя внутри iframe - все эти кейсы можно решить добавляя новые события к jschannel. В случае если у Вас нет доступа к содержимому iframe и Вы хотите получить его высоту, к сожелению, я не знаю что Вам можно посоветовать, и вообще возможноли это.
Комментариев нет:
Отправить комментарий