Redimensionar iframe на основании Вашего контента

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

Если существует какой-то plugin JQuery, чистый язык сценариев JavaScript или простое решение было бы большого вклада, так как то, что мне только удается сделать, состоит в том, чтобы он приспособился к контенту как только он закончил грузить, но не всякий раз когда он изменяется.

Я присоединяю код, который я имею по отношению к моменту:

document.getElemenById('iframeToResize').onload = function() {
  var newheight = this.contentWindow.document.body.scrollHeight,
    newwidth = this.contentWindow.document.body.scrollWidth;

  this.height = (newheight) + 'px';
  this.width = (newwidth) + 'px';
};

Шрифты опоры:

  1. How хан I detect whether an iframe is loaded? - Stack Overflow
  2. Adjust width height of iframe to fit with content in it - Стакк Оверфлов

7
задан 23.05.2017, 15:39
3 ответа

Ты можешь иметь доступ в <iframe> с контента этого (всякий раз когда они были того же домена):

var iframe = window.parent.document.getElementById('miIframe');

Для твоего особенного случая, ты был бы должен считать что-то сходным в:

window.onresize = function() {
    var iframe = window.parent.document.getElementById('miIframe');
    iframe.style.width = window.style.width;
    iframe.style.height = window.style.height;
}

Прими во внимание стоимость margin контента iframe для того, чтобы вычисление было более точным.

Доказательство и позволь мне знать.

9
ответ дан 01.12.2019, 08:16
  • 1
    C и # 243; я говорю, что он не дает мне ошибку, в самом деле depur и # 233; l и # 237; nea в l и # 237; nea и я понял, что совсем стоимость правильна, проблема состоит в том, что он не обнаруживает, что контент делает себе м и # 225; s большой, я представляю себе то, что, из-за которого iframe не изменился tama и # 241; или, поэтому он не бросает событие. Действительно уже intent и # 233; не использовать один $('form').resize();, но также. – Chofoteddy 05.12.2015, 20:23
  • 2
    Я буду проверять как только я приблизился к компьютеру. – Rubens Mariuzzo 05.12.2015, 21:31

Ты мог бы использовать Seamless.js, очень полезный encontrás для IFrames.

Он превосходный, чтобы мочь работать с динамическим контентом.

1
ответ дан 01.12.2019, 08:16
  • 1
    Я видел давайте давать их и кажется, что справедливое то, чего я требую, тестировать это и # 233; и давать и # 233; feedback, быть и # 237; в совершенный, что ты мог в и # 241; adir c и # 243; я говорю примера в твой ответ, чтобы иметь аргумент s и # 243; lido: D м и # 225; s, что встреча в librer и # 237; в, смотри пример aqu и # 237;: es.stackoverflow.com/a/550/729 – Chofoteddy 06.12.2015, 12:33

Протестируй с нею librerГ - FIT.js. Эта librerГ - в utiliza свойства scale из css3 для redimensionar один div или любой элемент dom, основанный в Ваш posiciГіn и первоначальные размеры, чтобы поддерживать подходящие пропорции.

Соединение в нее librerГ - в http://soulwire.github.io/fit.js/

0
ответ дан 01.12.2019, 08:16