Promijeni veličinu iframe-a da stane na sadržaj (samo na istoj domeni) - CSS-trikovi

Anonim

Obično postavljate i širinu i visinu za okvire okvira. Ako je sadržaj unutra veći, klizači moraju biti dovoljni. Skripta u nastavku pokušava to popraviti dinamičkom promjenom veličine iframe-a tako da odgovara sadržaju koji se učitava.

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

Hoće li promijeniti veličinu iframea poput ovog:



Pogledajte demo

I dalje problematično ...

  1. Izvor iframe sadržaja mora biti na istoj domeni
  2. ako sadržaj unutar iframea promijeni visinu, to se neće prilagoditi
  3. Ostavio sam kôd Google Analyticsa iz demonstracije iznad, jer kad sam ga dodao, čini se da ometa i ne mijenja veličinu iframea, unatoč tome što naizgled nije generirao pogreške.