Spremeni velikost vstavljenega okvira tako, da ustreza vsebini (samo za isto domeno) - CSS-triki

Anonim

Običajno nastavite in širino in višino za okvirje. Če je vsebina v njej večja, morajo biti dovolj drsni trakovi. Spodnji skript to poskuša popraviti z dinamičnim spreminjanjem velikosti iframeja tako, da ustreza vsebini, ki jo naloži.

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

Bo spremenil velikost iframeja, kot je ta:



Oglejte si predstavitev

Še vedno problematično ...

  1. Vir vsebine iframe mora biti v isti domeni
  2. če vsebina znotraj okvira iframe spremeni višino, se to ne bo prilagodilo
  3. Kodo Google Analytics sem pustil v zgornji predstavitvi, saj se zdi, da ko jo dodam, moti in ne spreminja velikosti iframeja, čeprav na videz ne ustvarja napak.