我继承了一个带有一些时髦代码的网站。它一直保持到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)中工作得很好。
答案 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;