#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 и Вы хотите получить его высоту, к сожелению, я не знаю что Вам можно посоветовать, и вообще возможноли это.
Комментариев нет:
Отправить комментарий