Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iframe在chrome/safari中使用滚动高度调整大小_Javascript_Html_Iframe_Resize - Fatal编程技术网

Javascript iframe在chrome/safari中使用滚动高度调整大小

Javascript iframe在chrome/safari中使用滚动高度调整大小,javascript,html,iframe,resize,Javascript,Html,Iframe,Resize,我试图根据iframe的内容调整iframe的大小(使其变大或变小)。单击每个页面后,将调用一个方法来调整大小 在Chrome中,我可以使iframe更大,但不能更小。document.body.scrollHeight始终是最大值 因此,如果一个大页面设置了#iframe.height='620px',并且有人单击指向内容滚动高度较低页面的链接,则滚动高度将保持在620px,而不是降低 在Chrome/Safari中处理此问题的正确方法是什么?您是否尝试使用document.documentE

我试图根据iframe的内容调整iframe的大小(使其变大或变小)。单击每个页面后,将调用一个方法来调整大小

在Chrome中,我可以使iframe更大,但不能更小。document.body.scrollHeight始终是最大值

因此,如果一个大页面设置了#iframe.height='620px',并且有人单击指向内容滚动高度较低页面的链接,则滚动高度将保持在620px,而不是降低


在Chrome/Safari中处理此问题的正确方法是什么?

您是否尝试使用
document.documentElement.scrollHeight
来代替?

在询问iframe内文档的高度之前,您应该将iframe对象的高度设置为“自动”。大概是这样的:

objIframe = document.getElementById('theIframeId');    
objIframe.style.height = 'auto';
现在:

document.body.scrollHeight

返回文档的实际高度。

根据规范,
元素。scrollHeight
将值舍入为整数。如果需要精确的分数,请使用
Element.getBoundingClientRect()

!我们已经为此奋斗了好几天了!如果其他人遇到这个问题,我的解决办法是为Firefox设置“document.body.scrollHeight”,为Chrome设置“document.documentElement.scrollHeight”以及其他任何设置。。。我的示例使用postMessage作为跨域
if(iFirefox){e.source.postMessage('height:'+document.body.scrollHeight,e.origin);}else{e.source.postMessage('height:'+document.documentElement.scrollHeight,e.origin);}
感谢您的回答,我只是好奇地把它包含在我的iFrame库@nitsuj中,您是如何决定在给定浏览器中收听或发送哪条消息的(body.scrollHeight vs.documentElement.scrollHeight)?在我的情况下,不是iframe,而是内部
div
需要
height:auto