chi*_*may 69 javascript php ajax iframe
我在我的网站上打开我的博客页面.问题是我可以给iframe一个宽度,但高度应该是动态的,这样iframe中就没有滚动条了,它看起来像一个页面......
我已经尝试了各种JavaScript代码来计算内容的高度,但是所有这些代码都提供了访问被拒绝权限错误,没有用.
<iframe src="http://bagtheplanet.blogspot.com/" name="ifrm" id="ifrm" width="1024px" ></iframe>
Run Code Online (Sandbox Code Playgroud)
我们可以使用Ajax来计算高度或者使用PHP吗?
Sch*_*kie 60
直接回答你的两个子问题:不,你不能用Ajax做这个,也不能用PHP计算它.
我过去所做的是使用来自iframe页面的触发器window.onload
(不是domready
,因为加载图像可能需要一段时间)才能将页面的主体高度传递给父页面.
<body onload='parent.resizeIframe(document.body.scrollHeight)'>
Run Code Online (Sandbox Code Playgroud)
然后parent.resizeIframe
看起来像这样:
function resizeIframe(newHeight)
{
document.getElementById('blogIframe').style.height = parseInt(newHeight,10) + 10 + 'px';
}
Run Code Online (Sandbox Code Playgroud)
Et瞧,你有一个强大的缩放器,一旦页面完全呈现就会触发,没有讨厌contentdocument
与contentWindow
小提琴:)
当然,现在人们会首先看到你的iframe处于默认高度,但是这可以通过首先隐藏你的iframe并显示"加载"图像来轻松处理.然后,当resizeIframe
函数启动时,在其中放置两条额外的行来隐藏加载图像,并显示该伪造Ajax外观的iframe.
当然,这只能在同一个域中运行,所以你可能想要一个代理PHP脚本来嵌入这些东西,一旦你去那里,你也可以用PHP直接将你的博客的RSS源直接嵌入你的网站.
小智 8
你可以用JavaScript做到这一点.
document.getElementById('foo').height = document.getElementById('foo').contentWindow.document.body.scrollHeight + "px";
Run Code Online (Sandbox Code Playgroud)
Gar*_*een -3
scrolling=no
尝试在 iframe 标记上使用属性。Mozilla 还有一个overflow-x
CSSoverflow-y
属性,您可以研究一下。
至于高度,你也可以尝试height=100%
使用iframe标签。