对于Javascript,替换为body onload =(string)

时间:2012-10-08 20:20:39

标签: javascript html javascript-events onload

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

的计时插件
<body onload="mktClock_standard(); setInterval('mktClock_standard()', 1000 ); mktClock_military(); setInterval('mktClock_standard()', 1000 )">

我想知道是否有办法做到这一点,但在JavaScript中,比如使用window.onload或其他东西。我试过简单地说:

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

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

3 个答案:

答案 0 :(得分:8)

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

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及更早版本中无效)

答案 1 :(得分:2)

您想使用函数声明:

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

答案 2 :(得分: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 );
} );