无法读取null的属性'...'

时间:2013-12-16 14:23:27

标签: javascript

我在这里有这个代码,我很确定我已经正确地传递了这个名字,但它仍然表示为null:

var w = window.innerWidth;
var h = window.innerHeight;
var inj = document.getElementById("sterile").innerHTML;

function inject(data) {
    document.getElementById("sterile").innerHTML+=data;
}

function geth(elem) {
    return document.getElementById(elem).clientHeight;
}

inject( ".fullscreen { height:"+h+"px;}");

inject( ".headpad {padding-top:"+h-(geth("headwrap")/2)+"px;}");

我尝试在Chrome的devconsole上输入geth("sterile")并正常返回但是当我通过文件启动时,我总是得到Uncaught TypeError....

错误行是10。

2 个答案:

答案 0 :(得分:2)

假设您在head标记中包含了javascript,请尝试将其包含在</body>标记之前。这可确保浏览器在解析您的javascript时了解所有元素。

答案 1 :(得分:1)

如果你想搞乱DOM,你应该先等待它准备好了。一种方法是:

window.addEventListener("DOMContentLoaded", function() {
    // Your logic here
}, false);

使用addEventListener也是一种不引人注目的Javascript技术,这是一种方式良好做法。您自动获得将代码包装在闭包中的优势。