替代 body onload = (字符串) 对于 Javascript



我(有点)对 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 )

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

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及更早版本中不起作用)

你想使用函数声明:

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

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

使用 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 );
} );

最新更新