JavaScript中为什么要用window.onload对应的函数将所有要运行的脚本包起来
如果不这么做脚本还可以正常运行吗我是新手,想找个师傅带带我,虽然能找到书本但是具体情况的处理还是缺乏经验,希望有个大神能指导一二,非常感谢!...
如果不这么做脚本还可以正常运行吗
我是新手,想找个师傅带带我,虽然能找到书本但是具体情况的处理还是缺乏经验,希望有个大神能指导一二,非常感谢! 展开
我是新手,想找个师傅带带我,虽然能找到书本但是具体情况的处理还是缺乏经验,希望有个大神能指导一二,非常感谢! 展开
4个回答
展开全部
window.onload这个函数将会在你的所有页面DOM元素(说白了就是整个页面)加载完成之后触发。自己写的东西放在其中是为了防止页面的东西还没有全部加载完成就调用。
比如你想在利用js来初始化一个文本输入框,让里面默认就写上“请输入”三个字。
如果不用onload的话很有可能出现一种情况,那就是:打开网页的人网络很差,你的文本框还没有加载出来就调用了你写的方法去初始化文本框。这时候就会报错因为页面根本没有文本框。
这样用onload的好处出来了。等所有DOM都加载完成再去调用你写的函数就不会出现问题了。
------手动码字很辛苦啊。
比如你想在利用js来初始化一个文本输入框,让里面默认就写上“请输入”三个字。
如果不用onload的话很有可能出现一种情况,那就是:打开网页的人网络很差,你的文本框还没有加载出来就调用了你写的方法去初始化文本框。这时候就会报错因为页面根本没有文本框。
这样用onload的好处出来了。等所有DOM都加载完成再去调用你写的函数就不会出现问题了。
------手动码字很辛苦啊。
展开全部
window.onload方法是在页面的所有元素都加载完毕后才会触发,包括图片。所以当链接质量不好的时候会导致该方法触发延迟。在使用的时候需要注意。
通常我们希望在Dom元素初始化完成的时候就执行操作,那么可以借助一些javascript框架。比如jquery中提供了$(document).ready(function(){});方法。
或者在元素加载完成后再写javascript脚本如
<body>
<!--some elements-->
</body>
<script>
function customOnload(){
// do something.
}
customOnload();
</script>
追问
所有脚本都要放在函数里面吗,我没定义函数直接把脚本写在script标签里面了,执行的时候就报错,我的脚本是这样的:
var p = document.getElementById("hotTags");
p.onclick = function() {...}
但是我把所有的内容放在window.onload = function() {..}
里面就不会出错
追答
你遇到的问题就是使用window.onload要解决的问题,如果我没有猜错的话你的script标签应该是放在head标签内的。当脚本放在window.onload外时,当执行到var p = document.getElementById("hotTags");这一行时,id为hotTags的dom元素还没有被创建。所以才会报错。
建议你仔细看一下答案,已经写的很清楚了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
window.onload的目的是要加载你要初始化的东西,如果初始化的就用这个,如果没有初始化的完全可以不用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
window.onload 简单说就是页面加载时,就调用了function中的方法。例如:
<script>
function f1(){...}
function f2(){...}
window.onload=function(){
f1();
f2();
}
</script>
<script>
function f1(){...}
function f2(){...}
window.onload=function(){
f1();
f2();
}
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询