7 回答
TA贡献361条经验 获得超191个赞
问题并不出在页面加载顺序上,加上window.onload还是不能执行的原因是因为window.onload=function(){}写了后,相当于将所有JS放到一个window.onload这个局部作用域中;
而你的代码setInterval("scrollUp()",speed),这么写叫做字符串写法,其中scrollUp这个函数必须在全局作用域中才可以被读取;所以当你加了window.onload以后,scrollUp就相当于放在局部作用域中,所以无法读取;
2种解决办法:
1、如你现在一样,放到</body>之前;
2、改成setInterval(scrollUp,speed)这么写,这样既可以读取全局作用域中函数,也可以读取局部作用域中函数;当改成这么写后,你再去加上window.onload就没问题了
TA贡献361条经验 获得超191个赞
html:
<script src="xxx.js"></script> //引用; //引用后,本页面不能有window.onload,否则会覆盖
xxx.js:
window.onload=function(){ //XXXX具体代码 //最后scrollUp不要用字符串写法 }
TA贡献2条经验 获得超1个赞
朋友,你就不能把代码放到专门的.js文件里面吗,然后在head里面写上<script type="text=javascript" src="存放的路径,绝对/相对路径都可以"><script>
在js文件里写上 window.onload=function(){
你完美的js代码块;
}
-----------------搞定收工。
TA贡献6条经验 获得超7个赞
主要是先加载和后加载的区别。
放在head中的JS代码会在页面加载完成之前就读取,而放在body中的JS代码,会在整个页面加载完成之后读取
如果JavaScript脚本写在head标签里面,那么需要用window.onload起到一个延迟加载的作用。
如果JavaScript脚本写在body里面,也要看具体位置。如果写在body里面,一般都是写在了body标签的最后面。
添加回答
举报