请帮帮我,
第一次iframe高度根据加载的高度而变化,但iframe内容被更改为比当前高度更大的高度,并且再次降低其未采用新值。
例如 加载的iframe高度= 1386px 新内容更改iframe height = 3440px 并再次更改为新高度= 3440px(但实际高度远小于1300px)
这是我试过的
$('iframe').load(function()
{
document.getElementById('loaderIFRAME').style.display = 'none';
document.getElementById('myiframe').style.display = 'block';
// Set inline style to equal the body height of the iframed content.
if($.browser.msie){
this.style.height = this.contentWindow.document.body.scrollHeight + 'px';
}else{
this.style.height = this.contentWindow.document.body.scrollHeight + 'px';
}
}
和另一个也相同
function autoIframe(frameId) {
try{
frame = document.getElementById(frameId);
innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
objToResize = (frame.style) ? frame.style : frame;
objToResize.height = innerDoc.body.scrollHeight + 10+ 'px';
alert( objToResize.height);
}
catch(err){
window.status = err.message;
}
}
我该如何解决?
答案 0 :(得分:2)
问题是,当你将iframe高度设置为一个大值时,它的scrollHeight总是等于大值,即使实际文档高度较小。您可以尝试将iframe高度设置为1px,然后读取scrollHeight属性。
$('iframe').load(function(){
try {
var body = $(this).contents().find('body');
this.height = 1;
this.height = body.attr('scrollHeight');
} catch(e){}
});
有时最好使用offsetHeight + offsetTop属性。 Here您可以找到我对此脚本的旧实现。