对Javascript来说,body onload = (string)的替代方案。

问题描述 投票:2回答:3

我是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 )

但是... 明明 有很多错误的语法错误之类的东西,所以...... 我去谷歌,但我找不到任何与我的问题有关的东西。有什么好办法吗?

javascript html dom-events onload
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及以前的版本中无法使用)


2
投票

你想使用一个函数声明。

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

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 );
} );
© www.soinside.com 2019 - 2024. All rights reserved.