我的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
}
]
}
]
};
答案 0 :(得分:1)
您应该使用
document.getElementById(Style.configs[i].flag);
而不是
document.getElementById(Style.configs[i].setup[c].size.flag)