无法获取未定义或空引用IE的属性

时间:2013-09-12 14:33:26

标签: javascript internet-explorer

我继承了一个带有一些时髦代码的网站。它一直保持到IE 10,当它开始抛出这个错误时:

Unable to get property 'offsetHeight' of undefined or null reference Line: 27 Char: 1 Code: 0 UR 

这是代码:

<script type="text/javascript">
function transDiv(){
var theheight=document.getElementById('transcontent').offsetHeight;
document.getElementById('translayer').style.height=theheight+'px';
}
window.onload=transDiv;
setInterval("transDiv()",1); //this handles text resizing through the users browser
</script>

任何想法/帮助将不胜感激。似乎在Chrome和FF以及客户端的IE版本(8,ugh)中工作得很好。

1 个答案:

答案 0 :(得分:1)

元素没有时间以1毫秒的间隔加载。您可以将代码更改为此解决方法,以保持完全相同的功能:

function transDiv() {
    var content = document.getElementById('transcontent');
    var layer = document.getElementById('translayer');
    if (!content || !layer)
        return;
    var theheight = content.offsetHeight;
    layer.style.height=theheight+'px';
    window.setTimeout(transDiv, 1);
}
window.onload = transDiv;

然而,因为它似乎意味着处理调整大小,只是捕获事件而不是使用计时器。摆脱window.setTimeout()行并在代码下面添加:

window.onresize = transDiv;