Mainīt Iframe izmēru, lai ietilptu saturā (tikai tajā pašā domēnā) CSS-triki

Anonim

Parasti iframei iestatāt un platumu un augstumu. Ja saturs iekšpusē ir lielāks, jāpietiek ar ritjoslām. Zemāk esošais skripts mēģina to novērst, dinamiski mainot iframe lielumu, lai tas atbilstu ielādētajam saturam.

 $(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'; )); ) )); 

Tiks mainīts šāda iframe izmērs:



Skatīt demonstrāciju

Joprojām problemātiska ...

  1. Iframe satura avotam jāatrodas tajā pašā domēnā
  2. ja iframe iekšpusē esošais saturs mainīs augstumu, tas netiks pielāgots
  3. Es atstāju Google Analytics kodu izslēgtu no iepriekš minētā demonstrācijas, jo, kad to pievienoju, tas, šķiet, traucē un nemaina iframe lielumu, neskatoties uz to, ka šķietami nerada kļūdas.