window.onload and getelementbyid returns null

window.onload and getelementbyid returns null

本文关键字:returns null getelementbyid and onload window      更新时间:2023-09-26

我的JS onload函数有问题。getElementById()-函数每次都返回NULL,但div存在。我看不到虫子。。。

这是HTML代码:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link rel="stylesheet" media="screen" href="styles/screen.css" />
    <script type="text/javascript" src="scripts/browser.js"></script>
    <script type="text/javascript" src="scripts/style.js"></script>
    <script type="text/javascript" src="scripts/state.js"></script>
</head>
<body>
    <div id="header"></div>
</body>
</html>

以及触发错误的js文件:

function onLoad() {
var element;
Browser.detect();
alert('Engine: ' + Browser.browser);
for (var i = 0; i < Style.configs.length; i++) {
    for (var c = 0; c < Style.configs[i].setup.length; c++) {
        if (Browser.browser == Style.configs[i].setup[c].engine) {
            element = document.getElementById(Style.configs[i].setup[c].size.flag);
            element.style.height = Style.configs[i].setup[c].size;
            break;
        }
        else if (Style.configs[i].setup[c].engine == "Default") {
            element = document.getElementById(Style.configs[i].setup[c].size.flag);
            element.style.height = Style.configs[i].setup[c].size;
            return;
        }
    }
}
}
window.onload = onLoad;

最后,style.js文件:

var Style = {
configs : [
    {
        flag : "header",
        setup : [
            {
                engine : "Gecko",
                size : 37
            },
            {
                engine : "Default",
                size : 38
            }
        ] 
    }
]
};

您应该使用

document.getElementById(Style.configs[i].flag);

而不是

document.getElementById(Style.configs[i].setup[c].size.flag)