我在这里有这个代码,我很确定我已经正确地传递了这个名字,但它仍然表示为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。
答案 0 :(得分:2)
假设您在head标记中包含了javascript,请尝试将其包含在</body>
标记之前。这可确保浏览器在解析您的javascript时了解所有元素。
答案 1 :(得分:1)
如果你想搞乱DOM,你应该先等待它准备好了。一种方法是:
window.addEventListener("DOMContentLoaded", function() {
// Your logic here
}, false);
使用addEventListener
也是一种不引人注目的Javascript技术,这是一种方式良好做法。您自动获得将代码包装在闭包中的优势。