7 回答

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
問題并不出在頁面加載順序上,加上window.onload還是不能執(zhí)行的原因是因?yàn)閣indow.onload=function(){}寫了后,相當(dāng)于將所有JS放到一個(gè)window.onload這個(gè)局部作用域中;
而你的代碼setInterval("scrollUp()",speed),這么寫叫做字符串寫法,其中scrollUp這個(gè)函數(shù)必須在全局作用域中才可以被讀取;所以當(dāng)你加了window.onload以后,scrollUp就相當(dāng)于放在局部作用域中,所以無法讀?。?/p>
2種解決辦法:
1、如你現(xiàn)在一樣,放到</body>之前;
2、改成setInterval(scrollUp,speed)這么寫,這樣既可以讀取全局作用域中函數(shù),也可以讀取局部作用域中函數(shù);當(dāng)改成這么寫后,你再去加上window.onload就沒問題了

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
html:
<script?src="xxx.js"></script>?//引用; //引用后,本頁面不能有window.onload,否則會(huì)覆蓋
xxx.js:
window.onload=function(){ //XXXX具體代碼 //最后scrollUp不要用字符串寫法 }

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超1個(gè)贊
朋友,你就不能把代碼放到專門的.js文件里面嗎,然后在head里面寫上<script type="text=javascript" src="存放的路徑,絕對/相對路徑都可以"><script>
在js文件里寫上 ?window.onload=function(){
????????你完美的js代碼塊;
}
-----------------搞定收工。

TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超7個(gè)贊
主要是先加載和后加載的區(qū)別。
放在head中的JS代碼會(huì)在頁面加載完成之前就讀取,而放在body中的JS代碼,會(huì)在整個(gè)頁面加載完成之后讀取
如果JavaScript腳本寫在head標(biāo)簽里面,那么需要用window.onload起到一個(gè)延遲加載的作用。
如果JavaScript腳本寫在body里面,也要看具體位置。如果寫在body里面,一般都是寫在了body標(biāo)簽的最后面。
添加回答
舉報(bào)