Man ir nepieciešams risinājums, kā automātiski pielāgot iframe
rāmja platumu
un augstumu
, lai tas gandrīz pilnībā atbilstu tā saturam. Runa ir par to, ka platumu un augstumu var mainīt pēc tam, kad iframe
ir ielādēts. Domāju, ka man ir nepieciešama notikuma darbība, lai risinātu iframe satura
izmēra izmaiņas.
<script type="application/javascript">
function resizeIFrameToFitContent( iFrame ) {
iFrame.width = iFrame.contentWindow.document.body.scrollWidth;
iFrame.height = iFrame.contentWindow.document.body.scrollHeight;
}
window.addEventListener('DOMContentLoaded', function(e) {
var iFrame = document.getElementById( 'iFrame1' );
resizeIFrameToFitContent( iFrame );
// or, to resize all iframes:
var iframes = document.querySelectorAll("iframe");
for( var i = 0; i < iframes.length; i++) {
resizeIFrameToFitContent( iframes[i] );
}
} );
</script>
<iframe src="usagelogs/default.aspx" id="iFrame1"></iframe>
Starp pārlūkprogrammām jQuery spraudnis.
Starp pārlūkprogrammām, starp domēniem bibliotēka, kas izmanto mutationObserver
, lai uzturētu iFrame izmēra atbilstību saturam, un postMessage
, lai sazinātos starp iFrame un galveno lapu. Darbojas ar vai bez jQuery.
Ja nevēlaties izmantot jQuery, piedāvājam risinājumu, kas darbojas dažādās pārlūkprogrammās:
/**
* Resizes the given iFrame width so it fits its content
* @param e The iframe to resize
*/
function resizeIframeWidth(e){
// Set width of iframe according to its content
if (e.Document && e.Document.body.scrollWidth) //ie5+ syntax
e.width = e.contentWindow.document.body.scrollWidth;
else if (e.contentDocument && e.contentDocument.body.scrollWidth) //ns6+ & opera syntax
e.width = e.contentDocument.body.scrollWidth + 35;
else (e.contentDocument && e.contentDocument.body.offsetWidth) //standards compliant syntax – ie8
e.width = e.contentDocument.body.offsetWidth + 35;
}