joomla3 javascript document.getElementById()。style不起作用

时间:2014-06-10 13:36:57

标签: jquery templates getelementbyid joomla3.3

index.html(no joomla)中的此代码:

<script>
    var left  = document.getElementById('zijmenu').offsetHeight;
    var right = document.getElementById('container').offsetHeight;
    document.write("hoogte linkerkant: ", left, " hoogte rechterkant: ", right);
    if (left < right)
       {document.getElementById('zijmenu').style.height = right;}
    else 
       {document.getElementById('container').style.height = left;}
</script>

工作正常:

<div id="zijmenu" style="height: 232px;">

当我在Joomla 3.3中的模板的index.php中添加相同的脚本时,结果是:

<div id="zijmenu" style="">

document.write按预期工作: hoogte linkerkant:132 hoogte rechterkant:232

为什么不采用这种风格? 我似乎无法在任何地方找到答案......

非常感谢帮助!

此致 Lenneke

1 个答案:

答案 0 :(得分:0)

使用普通javascript设置样式时需要单位,而offsetHeight会返回舍入整数,因此您可能需要执行

document.getElementById('zijmenu').style.height = right + 'px';

请注意,offsetHeight仅在加载所有元素时返回正确的值,这可能是图像等的问题,并且只有在DOM中可用时才能通过ID获取元素,因此脚本应该在元素之后。

不建议使用旁注document.write,因为如果在文档加载后调用文档,它会覆盖文档。