iframe作为嵌入内容,如果显示滚动条,有时候可能会出现外部有滚动条,iframe内部也有滚动条,影响美观,体验性也不好。如果禁用滚动条,有可能会出现iframe中的内容显示的情况。因此,如果禁用滚动条,需要根据iframe的内容动态设置iframe的宽度和高度。
如下所示,home.html作为嵌入页面,iframe所在的页面为主页面
<iframe id="mainIframe" name="mainIframe" src="html/home.html" height="100%" width="100%" scrolling="no">
</iframe>
在主页面中添加如下js代码
//动态设置iframe的高度和宽度
var timeout;
window.onload = function ()
{
timeout= setTimeout(resizeIframe, 10);
}
function resizeIframe()
{
var iframe = document.getElementById("mainIframe");
var iframeWindow = iframe.contentWindow;
//内容是否加载完
if (iframeWindow.document.readyState == "complete")
{
var iframeWidth, iframeHeight;
//获取Iframe的内容实际宽度
iframeWidth = iframeWindow.document.documentElement.scrollWidth;
//获取Iframe的内容实际高度
iframeHeight = iframeWindow.document.documentElement.scrollHeight;
//设置Iframe的宽度,注意不能用iframe.style.width
iframe.width = iframeWidth;
//设置Iframe的高度,注意不能用iframe.style.height
iframe.height = iframeHeight;
} else
{
//重新调用
timeout= setTimeout(resizeIframe, 10);
}
}
注意:iframe的初始width和height不要在style里面设置,否则后面的代码将不起作用。动态设置iframe的宽度和高度用iframe.width和iframe.height而不是用iframe.style.width和iframe.style.height。