În mod normal, setați și lățimea și înălțimea pentru iframe. Dacă conținutul din interior este mai mare, barele de derulare trebuie să fie suficiente. Scriptul de mai jos încearcă să remedieze acest lucru prin redimensionarea dinamică a iframe-ului pentru a se potrivi conținutului pe care îl încarcă.
$(function()( var iFrames = $('iframe'); function iResize() ( for (var i = 0, j = iFrames.length; i < j; i++) ( iFrames(i).style.height = iFrames(i).contentWindow.document.body.offsetHeight + 'px';) ) if ($.browser.safari || $.browser.opera) ( iFrames.load(function()( setTimeout(iResize, 0); )); for (var i = 0, j = iFrames.length; i < j; i++) ( var iSource = iFrames(i).src; iFrames(i).src = ''; iFrames(i).src = iSource; ) ) else ( iFrames.load(function() ( this.style.height = this.contentWindow.document.body.offsetHeight + 'px'; )); ) ));
Va redimensiona un iframe ca acesta:
Vizualizați demonstrația
Încă problematic ...
- Sursa conținutului iframe trebuie să se afle pe același domeniu
- dacă conținutul din cadrul iframe își schimbă înălțimea, acest lucru nu se va adapta
- Am lăsat codul Google Analytics de pe demo-ul de mai sus, deoarece atunci când l-am adăugat, pare să interfereze și să nu redimensioneze iframe-ul, în ciuda faptului că nu generează erori.