JavaScript onload和DOM
我有以下示例文档:JavaScript onload和DOM,javascript,dom,onload-event,Javascript,Dom,Onload Event,我有以下示例文档: <html> <body> <script type="text/javascript"> document.body.onload = myFunc(); function myFunc() { element = document.getElementById('myDiv'); element.in
<html>
<body>
<script type="text/javascript">
document.body.onload = myFunc();
function myFunc() {
element = document.getElementById('myDiv');
element.innerHTML = 'Hello!';
}
</script>
<div id="myDiv"></div>
</body>
</html>
我的问题是:如果我在处理函数中使用onload
事件,我应该拥有整个DOM吗?为什么不可以呢?用这个代替
document.body.onload = myFunc;
或
问题是您正在立即调用该函数(并分配其返回值) 改为分配函数,它将工作:
document.body.onload = myFunc;
您还应该在函数中使用var元素
,以避免创建全局变量
或者,如果你想迷惑人们:
document.body.onload = myFunc();
function myFunc() {
return function() {
var element = document.getElementById('myDiv');
element.innerHTML = 'Hello!';
};
}
但是让我们不要那样做。这在这里毫无意义 你睁开了我的眼睛!哈哈,谢谢你!尽管ThiefMaster指出了代码中的错误,但这可能对您有所帮助-在
DOMContentLoaded
之前访问document.body
可能会给您带来错误。所以,也要注意:)甚至jquery也会检查document
对象是否存在,以确认dom已准备好供脚本访问var body=document | | | document.body | | | document.getElementsByTagName('body')[0]
如果您想在将来做大事,可能会很有帮助;)
document.body.onload = myFunc;
document.body.onload = myFunc();
function myFunc() {
return function() {
var element = document.getElementById('myDiv');
element.innerHTML = 'Hello!';
};
}