0

我在自己的域和 joomla 中托管 iframe!我已经设置了一个 iframe 包装器。我给出的网址开始于http://www.我的设置是:

scroll bars: auto
width: 100%
height: 500

auto height: yes
auto add: no

我的两个浏览器都给我一个 javascript 错误(null 不是对象):使用 safari、firefox 和 chrome。此错误指向 joomla 核心中的脚本:

<script type="text/javascript">
function iFrameHeight() {
    var h = 0;
    if (!document.all) {
        h = document.getElementById('blockrandom').contentDocument.height;
        document.getElementById('blockrandom').style.height = h + 60 + 'px';
    } else if (document.all) {
        h = document.frames('blockrandom').document.body.scrollHeight;
        document.all.blockrandom.style.height = h + 20 + 'px';
    }
}
</script>

这使我的包装器保持在 500px 高度,我希望它根据 iframe 的高度自动添加。

我可以用什么代替这个功能?在此先感谢,劳伦特。

4

3 回答 3

0

试试这个来调整 iframe 的大小,包括 iframe 的所有元素都应该设置为 100% 的高度。

<script type="text/javascript">
$(document).ready(function() {
   function iSize(){
document.getElementById('mainFrame').height = document.getElementById('mainFrame').contentWindow.document.body.scrollHeight;
document.getElementById('mainFrame').height = document.getElementById('mainFrame').contentDocument.documentElement.scrollHeight;
   }
});
</script>
  1. 将文件 components/com_wrapper/views/wrapper/tmpl/default.php 复制到 templates/your_template/html/com_wrapper/wrapper/
  2. 打开文件模板/your_template/html/com_wrapper/wrapper/default.php
  3. 将函数 iFrameHeight() 替换为以下新函数:
function pageY(elem) {
        return elem.offsetParent ? (elem.offsetTop + pageY(elem.offsetParent)) : elem.offsetTop;
    }
    var buffer = 0; //scroll bar buffer
    function iFrameHeight() {
        var height = document.documentElement.clientHeight;
        height -= pageY(document.getElementById('blockrandom'))+ buffer ;
        height = (height < 0) ? 0 : height;
        document.getElementById('blockrandom').style.height = height + 'px';
    }
    document.getElementById('blockrandom').onload=iFrameHeight;
    window.onresize = iFrameHeight;
于 2013-01-30T19:32:15.933 回答
0

这段代码对我不起作用。但我解决了一个:

var the_height = document.getElementById('blockrandom').contentWindow.document.body.scrollHeight;
document.getElementById('blockrandom').style.height = the_height; //height + 'px'; 
于 2014-06-12T09:06:04.393 回答
0

抱歉,正确的行: var the_height=document.getElementById('blockrandom').contentWindow.document.body.scrollHeight; document.getElementById('blockrandom').height = the_height;

ps版本:1.6版本joomla:3.2.1

于 2014-06-12T09:09:44.210 回答