无法读取属性''为null

Cannot read property '...' of null

本文关键字:null 属性 读取      更新时间:2023-09-26

我在这里有这个代码,我很确定我已经正确地传递了名称,但它仍然显示为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。

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

如果您想处理DOM,您应该首先等待它准备好。这样做的一种方法是:

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

使用addEventListener也是一种非抽象的Javascript技术,这是一种方式的良好实践。您可以自动获得将代码封装在闭包中的优势。