為什么js部分放在head里的話就報(bào)錯(cuò),放在body里就可以?
<script>
window.onload=function(){
var con1=document.getElementById("con1");
var con2=document.getElementById("con2");
var are=document.getElementById("big");
? ? ? ? ? ? ? ? var speed = 50;
? ? ? ? ? ? ? ? ?are.scrollTop = 0;
? ? ? ? ? ? ? ? ?con2.innerHTML = con1.innerHTML;
? ? ? ? ? ? ? ? ?function scrollUp(){
? ? ? ? ? ? if(are.scrollTop >= con1.scrollHeight) {
? ? ? ? are.scrollTop = 0;
? ? ? ? ?}else{
? ? ? ? ? ? ? are.scrollTop ++;?
? ? ? ? }?
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?var myScroll = setInterval("scrollUp()",speed);
? ? ? ? ? ? ? ?are.onmouseover = function(){
? ? ? ? ? ? ? ?clearInterval(myScroll);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?are.onmouseout = function(){
? ? ? ? ? ? ? ? ? myScroll = setInterval("scrollUp()",speed);
? ? ? ? ? ? ? ? }
</script>
這是放在head里的代碼,顯示scrollUp未定義。
另外,在head中用window.onload和js放在body最后有什么具體區(qū)別?
2016-08-23
因?yàn)樽x取的時(shí)候是從頭讀到尾的,js放在head的時(shí)候,里面定義的獲取的一些屬性還沒有被讀取到,所以js一般最好放在body的最下面。
1、
window.onload=function(){
var con1=document.getElementById("con1");
var con2=document.getElementById("con2");
var are=document.getElementById("big");
? ? ? ? ? ? ? ? var speed = 50;
? ? ? ? ? ? ? ? ?are.scrollTop = 0;
? ? ? ? ? ? ? ? ?con2.innerHTML = con1.innerHTML;
? ? ? ? ? ? ? ? ?function scrollUp(){
? ? ? ? ? ? if(are.scrollTop >= con1.scrollHeight) {
? ? ? ? are.scrollTop = 0;
? ? ? ? ?}else{
? ? ? ? ? ? ? are.scrollTop ++;?
? ? ? ? }?
? ? ? ? ? ? ? ? ? ? }
這一部分代碼有onload,所以沒問題;
2、
?var myScroll = setInterval("scrollUp()",speed);
? ? ? ? ? ? ? ?are.onmouseover = function(){
? ? ? ? ? ? ? ?clearInterval(myScroll);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?are.onmouseout = function(){
? ? ? ? ? ? ? ? ? myScroll = setInterval("scrollUp()",speed);
? ? ? ? ? ? ? ? }
這一段代碼你寫在了onload外,所以放在head區(qū)時(shí)會(huì)在body加載之前執(zhí)行,因此就缺少變量,顯示未定義了
2016-08-14
因?yàn)樽x取的時(shí)候是從頭讀到尾的,js放在head的時(shí)候,里面定義的獲取的一些屬性還沒有被讀取到,所以js一般最好放在body的最下面,我都是這么做的