html iframe高度自适应

来源:互联网 发布:linux oracle 软件包 编辑:程序博客网 时间:2024/05/21 08:35

最近遇到一个问题纠结死了,iframe总是不能高度自适应,去网上查有很多解答,但是总不能解决问题,根本无效

老是报错

a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.
这句话大概意思是必须同一个域

我只是做的HTML用iframe引用其他的HTML,这样并不是同一个域,简直笨死了,将其放到tomcat下测试了才可以,这才是在同一个域,用跨域也有解决办法,不过暂未验证,下面是俩参考网址

iframe高度自适应   JavaScript跨域总结与解决办法

以下是核心代码(都是在父文件里)

<iframe id="iframe" name="iframe" src="../index.jsp" width="100%" frameborder="no" border="0"  scrolling="no" onload="setIframeHeight(this)"></iframe>

<script type="text/javascript" language="javascript">function setIframeHeight(iframe) {if (iframe) {var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;if (iframeWin.document.body) {iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;}}};    </script>  

注意!js不要写在head里,不起作用,放到body里面


这也是iframe自适应的一种方法


<div id="index-content"><iframe id="iframe" src="login/register.html" width="100%" height="800px" onLoad="iFrameHeight()" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
<script type="text/javascript">function iFrameHeight() { var ifm= document.getElementById("iframepage"); var subWeb = document.frames ? document.frames["iframepage"].document : ifm.contentDocument; if(ifm != null && subWeb != null) { ifm.height = subWeb.body.scrollHeight; } } </script>


参考于下面网站,里面还有很多方法,也还没验证


http://www.jb51.net/article/15780.htm


0 0