/** * @author Stephane Roucheray * @extends jquery */ jQuery.fn.iframeResize = function(options){ var settings = jQuery.extend({ width: "fill", height: "auto", autoUpdate : true }, options); var filler = 30; function onEachIframe(){ var frame = jQuery(this); var body = frame.contents().find("body"); frame.css("overflow", "hidden"); if (settings.autoUpdate) { if (jQuery.browser.msie) { frame.attr("scrolling", "auto"); setInterval(immediateResize, 1000); } else { body.bind("DOMSubtreeModified", { frame: frame }, resizeIframe); } } immediateResize(); function immediateResize(){ var e = jQuery.Event(); e.data = {}; e.data.frame = frame; resizeIframe.call(body, e); } } function resizeIframe(event){ var body = jQuery(this); event.data.frame.css("width", settings.width == "fill" ? "100%" : parseInt(settings.height)); event.data.frame.css("height", settings.height == "auto" ? body.outerHeight(true) + filler : parseInt(settings.height)); alert(body.outerHeight(true)); } jQuery(this).children("iframe").each(onEachIframe); };