有人可以向我解释为什么 window.onload
在 aspx 中工作正常,但在 xhtml 中却不行吗?
此 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 strict 中不起作用。 (它不会在页面加载时立即触发 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>
它只触发 body 事件,该事件设置为在 1 分钟后显示 countDownClock
<body onload = "setInterval('countDownClock()', 60000)">
最佳答案
啊哈,编辑让一切变得不同。
一个页面只能有一个处理程序来处理 load
事件,所以如果您使用 window.onload
添加一个处理程序并使用 body onload< 添加另一个处理程序
属性,只有其中一个会起作用。
将两个 Action 放在同一个处理程序中:
window.onload = function(){
countDownClock();
window.setInterval(countDownClock, 60000);
};
关于javascript - window.onload 适用于 aspx 页面,但不适用于常规 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255043/