最近遇到一个问题纠结死了,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" οnlοad="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