0

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

1 回答 1

1

你应该使用

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

代替

document.getElementById(Style.configs[i].setup[c].size.flag)
于 2013-07-02T15:50:13.850 回答