Изучив множество различных решений, я написал простой плагин jQuery, чтобы учесть различные варианты использования.Поскольку мне нужно было решение, которое поддерживало бы несколько пользовательских сгенерированных iFrames на странице портала, поддерживаемые размеры браузера и могли справляться с загрузкой JavaScript на главной странице после iFrame.Я также добавил поддержку изменения размера по ширине и функцию обратного вызова и разрешил переопределение body.margin, так как вы, вероятно, захотите установить этот параметр на ноль.
https://github.com/davidjbradshaw/iframe-resizer
пользователи главной страницы jQuery, код iframe - это просто небольшой автономный JavaScript, поэтому он является хорошим гостем на страницах других людей.
Затем jQuery инициализируется на главной странице и имеет следующие доступные опции.Подробнее о том, что они делают, можно узнать на странице GitHub.
$('iframe').iFrameSizer({
log: false,
contentWindowBodyMargin:8,
doHeight:true,
doWidth:false,
enablePublicMethods:false,
interval:33,
autoResize: true,
callback:function(messageData){
$('p#callback').html('<b>Frame ID:</b> ' + messageData.iframe.id +
' <b>Height:</b> ' + messageData.height +
' <b>Width:</b> ' + messageData.width +
' <b>Event type:</b> ' + messageData.type);
}
});
Если вы установите enablePublicMethods, он предоставит вам доступ в iframe, чтобы вручную установить размер iFrame и даже удалить iframe со страницы хоста.