1

有人可以請向我解釋爲什麼window.onload在aspx中工作正常,但在xhtml中不能正常工作?window.onload與aspx頁面正常工作,但不是在正常的htm

這在window.onload例如ASPX正常工作:

<script type="text/javascript"> 
    //<![CDATA[ 
     //handles the collapse of submenu items on navigation side menu 

function toggle() { 

    document.getElementById('node4').style.display = ''; 

} 

window.onload = toggle; 

//]]> 
</script> 

然而,這在window.onload例子並不在XHTML 1.0嚴格的工作。 (它不會立即解僱countDownClock加載頁面時):

<script type="text/javascript"> 
    //<![CDATA[ 
    //handles the collapse of submenu items on navigation side menu 

    function countDownClock() { 
     today = new Date(); 
     openingDay = new Date(); 
     openingDay.setMonth(2, 23); 
     (today > openingDay) ? openingDay.setFullYear(2013) : openingDay.setFullYear(); 
     openingDay.setHours(9, 0, 0, 0); 
     document.getElementById("mallclock").dayNow.value = showDate(today); 
     document.getElementById("mallclock").timeNow.value = showTime(today); 

     var daysLeft = dayDiff(today, openingDay); 
     var hoursLeft = hoursDiff(today, openingDay); 
     var minutesLeft = minutesDiff(today, openingDay); 

     daysLeft = ((hoursLeft - 24) >= 0) ? daysLeft + (hoursLeft/24) : daysLeft; 
     hoursLeft = ((hoursLeft - 24) >= 0) ? hoursLeft - ((hoursLeft/24) * 24) : hoursLeft; 
     hoursLeft = ((minutesLeft - 60) >= 0) ? hoursLeft + (minutesLeft/60) : hoursLeft; 
     minutesLeft = ((minutesLeft - 60) >= 0) ? minutesLeft - ((minutesLeft/60) * 60) : minutesLeft; 

     document.getElementById("mallclock").days.value = daysLeft; 
     document.getElementById("mallclock").hours.value = hoursLeft; 
     document.getElementById("mallclock").minutes.value = minutesLeft; 

    } 

    window.onload = countDownClock; 

//]]> 
</script> 

它只激發身體的事件,這是設置爲顯示countDownClock 1分鐘後

<body onload = "setInterval('countDownClock()', 60000)"> 
+0

你能指定的「不工作」是什麼意思?當你運行它時會發生什麼,以及它與你期望的有什麼不同?你有任何錯誤信息? – Guffa

+0

當我運行它時,它只會觸發我擁有的>。所以在頁面加載1分鐘後,我看到了我想要的內容......但是,我希望它能夠在頁面加載時立即顯示,然後每分鐘重新調用該函數。 – user1066524

回答

2

啊哈,編輯所做的所有區別。

一個頁面只能爲load事件一個處理程序,因此,如果您添加一個使用window.onload,並添加使用body onload屬性一個又一個,只是其中的一會工夫。

把兩個動作在相同的處理:

window.onload = function(){ 
    countDownClock(); 
    window.setInterval(countDownClock, 60000); 
}; 
+0

謝謝!有用! – user1066524

相關問題