window.onload和getelementbyid返回null

时间:2013-07-02 15:47:15

标签: javascript html css

我的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
            }
        ] 
    }
]
};

1 个答案:

答案 0 :(得分:1)

您应该使用

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

而不是

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