我在我的网站上打开我的博客页面.问题是我可以给iframe一个宽度,但高度应该是动态的,这样iframe中就没有滚动条了,它看起来像一个页面......
我已经尝试了各种JavaScript代码来计算内容的高度,但是所有这些代码都提供了访问被拒绝权限错误,没有用.
我们可以使用Ajax来计算高度或者使用PHP吗?
直接回答你的两个子问题:不,你不能用Ajax做这个,也不能用PHP计算它.
我过去所做的是使用来自iframe页面的触发器window.onload
(不是domready
,因为加载图像可能需要一段时间)才能将页面的主体高度传递给父页面.
然后parent.resizeIframe
看起来像这样:
function resizeIframe(newHeight) { document.getElementById('blogIframe').style.height = parseInt(newHeight,10) + 10 + 'px'; }
Et瞧,你有一个强大的缩放器,一旦页面完全呈现就会触发,没有讨厌contentdocument
与contentWindow
小提琴:)
当然,现在人们会首先看到你的iframe处于默认高度,但是这可以通过首先隐藏你的iframe并显示"加载"图像来轻松处理.然后,当resizeIframe
函数启动时,在其中放置两条额外的行来隐藏加载图像,并显示该伪造Ajax外观的iframe.
当然,这只能在同一个域中运行,所以你可能想要一个代理PHP脚本来嵌入这些东西,一旦你去那里,你也可以用PHP直接将你的博客的RSS源直接嵌入你的网站.
你可以用JavaScript做到这一点.
document.getElementById('foo').height = document.getElementById('foo').contentWindow.document.body.scrollHeight + "px";