2

我(有点)是 JavaScript 新手,我正在编写一个需要

<body onload="mktClock_standard(); setInterval('mktClock_standard()', 1000 ); mktClock_military(); setInterval('mktClock_standard()', 1000 )">

我想知道是否有办法做到这一点,但是在 JavaScript 中,比如 using 之类的window.onload。我简单地尝试了:

window.onload = mktClock_standard(); setInterval('mktClock_standard()', 1000 ); mktClock_military(); setInterval('mktClock_standard()', 1000 )

显然有很多错误的语法错误和东西,所以......我去了谷歌,但我找不到任何与我的问题有关的东西。有任何想法吗?

4

3 回答 3

8

window.onload与属性完全相同onload,但它需要一个函数:

window.onload = function() {
    mktClock_standard(); 
    setInterval('mktClock_standard()', 1000 ); 
    mktClock_military(); 
    setInterval('mktClock_standard()', 1000 )
}

实际上,当您将代码添加到 等属性时<body onload="code...">,浏览器会将它们视为有一个包装匿名函数。

此外,现代浏览器支持DOMContentLoaded类似的事件,但更早触发。它会在 DOM 加载后立即触发,同时window.onload等待其他资源(例如图像)被加载。要绑定到DOMContentLoaded,请使用addEventListener

document.addEventListener('DOMContentLoaded', function(evt) {
    // event handler code here
});

(以上不适用于 IE8 及更早版本)

于 2012-10-08T20:21:58.220 回答
2

您想使用函数声明:

window.onload = function() {
    mktClock_standard();
    setInterval('mktClock_standard()', 1000 ); 
    mktClock_military(); 
    setInterval('mktClock_standard()', 1000 )
}
于 2012-10-08T20:22:15.577 回答
2

有几种方法可以附加您的活动。所有这些都需要有一个包含您的语句的函数。

使用window.onload事件处理程序:

window.onload = function() {
  mktClock_standard(); 
  setInterval('mktClock_standard()', 1000 ); 
  mktClock_military(); 
  setInterval('mktClock_standard()', 1000 );
};

或使用addEventListener()

window.addEventListener( 'DOMContentLoaded', function() {
  mktClock_standard(); 
  setInterval('mktClock_standard()', 1000 ); 
  mktClock_military(); 
  setInterval('mktClock_standard()', 1000 );
} );
于 2012-10-08T20:22:20.637 回答