获取iframe高度

时间:2014-06-19 12:44:50

标签: jquery iframe

在页面内容中,我有一些外部iframe,问题是我不希望滚动有iframe,但我不知道iframe会有多长时间?

<iframe id="newsletter"
       src="http://www.vimontline.com/"
       frameborder="0"
       width="100%"
       marginheight="0"
       marginwidth="0"
       scrolling="no">
</iframe>

宽度没有问题,我的问题是高度,我想从我的iframe中删除scrool,但我不要让它像高度=&#34; 100px&#34;,任何想法与jquery如何得到iframe高度,我已经添加到我的id高度?

4 个答案:

答案 0 :(得分:0)

您无法从父页面访问此信息。如果您控制加载到iframe中的URL,那么一旦加载DOM,您就可以告诉它的父级调整大小。

iframe中的代码:

parent.resizeFrame(document.body.scrollHeight)

父页面代码:

function resizeFrame(height) {
    document.getElementById('blogIframe').style.height = parseInt(height, 10) + "px";
}

您可能需要在高度上添加一些额外内容,以防止浏览器中的滚动条不一致。

答案 1 :(得分:0)

使用这些脚本可以实现iframe动态调整大小(跨域) iframeResizer

您必须在父页面(iframeResizer.min.js)上运行脚本,在iframe内运行另一个脚本(iframeResizer.contentWindow.min.js)。

它使用postmessage api,它对我有用

我希望有帮助

答案 2 :(得分:0)

您可以使用以下js代码获取iframe的高度

setTimeout(function () {
                $('iframe#newsletter').css('height', $(window).height() + 'px');
            }, 1000);

此解决方案适用于您不需要定义高度,它将自动定义高度

答案 3 :(得分:0)

正如FreeAsInBeer所说,出于安全目的,这不是你真正可以做的事情,只是为了进一步澄清,请参阅:

Same-Origin-Policy&amp; Cross-Origin-Resource-Sharing

这是我见过的关闭事情:http://css-tricks.com/cross-domain-iframe-resizing/但我也不建议这样做。