-如何显示参考页面的整体高度?
我有一个要嵌入到我们公司CMS中的应用程序。做到这一点的唯一方法(被告知)是将其加载到<iframe>中。
简单:只需将"高度"和"宽度"设置为" 100%"!除此以外,它不起作用。
我确实发现了将frameborder
设置为0
的信息,因此它至少看起来像是网站的一部分,但我宁愿不要在已经拥有一个页面的页面中放置一个丑陋的滚动条。
我们知道执行此操作的任何技巧吗?
编辑:我想我需要澄清一下我的问题:
- 公司CMS在整个网站上显示绒毛和东西
- 通过CMS创建的大多数页面
- 我的应用程序不是,但是他们会让我将其嵌入到<iframe>中
- 我无法控制
iframe
,因此任何解决方案都必须在引用的页面上运行(根据iframe
标签的src
属性) - CMS会显示页脚,因此将高度设置为100万像素不是一个好主意
我可以从引用页面访问父页面DOM吗?这可能会有所帮助,但我可以看到有些人可能不希望这样。
该技术似乎可行(从多个来源收集,但受公认答案的链接启发:
在父文档中:
<iframe id="MyIFRAME" name="MyIFRAME" src="http://localhost/child.html" scrolling="auto" width="100%" frameborder="0"> no iframes supported... </iframe>
在儿童中:
<!-- ... --> <body> <script type="text/javascript"> function resizeIframe() { var docHeight; if (typeof document.height != 'undefined') { docHeight = document.height; } else if (document.compatMode && document.compatMode != 'BackCompat') { docHeight = document.documentElement.scrollHeight; } else if (document.body && typeof document.body.scrollHeight != 'undefined') { docHeight = document.body.scrollHeight; } // magic number: suppress generation of scrollbars... docHeight += 20; parent.document.getElementById('MyIFRAME').style.height = docHeight + "px"; } parent.document.getElementById('MyIFRAME').onload = resizeIframe; parent.window.onresize = resizeIframe; </script> </body>
顺便说一句:仅出于安全原因,由于JavaScript的限制,如果父级和子级在同一个域中,则此方法才有效...
解决方案
回答
我们可以只使用脚本语言将页面包含在父页面中,否则,我们可能想尝试以下javascript方法之一:
http://brondsema.net/blog/index.php/2007/06/06/100_height_iframe
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_22840093.html
回答
我可能在这里丢失了一些东西,但是将scrolling = no
作为属性添加到iframe
标签通常会摆脱滚动条。
回答
如果iframe与包含页面的托管服务器相同,则可以通过javascript访问它。
有很多建议的方法可以将iframe设置为内容的全部高度,每种方法的成功程度各不相同。谷歌针对这个问题表明,这是很常见的一种,没有一个真正的,一刀切的共识解决方案,我怕!
一些人报告说此脚本可以解决问题,但是可能需要针对特定情况进行一些修改(同样,假设iframe和父页面位于同一域中)。