JavaScript setTimeout不起作用

Ido*_*ron 3 javascript jquery onload settimeout

我希望在加载页面后60秒运行JavaScript函数.经过一番研究,我发现setTimeout()就是解决方案.

这就是我做的:

<body onLoad="setTimeout(postAction('news.reads', 'article'), 60000);">
Run Code Online (Sandbox Code Playgroud)

不知何故,setTimeout不起作用.加载页面后,无需等待60秒,因为postAction()会立即运行.

为什么会这样?怎么解决?那里有setTimeout()的替代品吗?谢谢!

Mik*_*nty 10

您需要包含postAction一个函数来推迟执行:

setTimeout(function() { postAction('news.reads', 'article'); }, 60000);
Run Code Online (Sandbox Code Playgroud)

您实际上是postAction立即执行,您的代码相当于:

var result = postAction('news.reads', 'article');

setTimeout(result, 60000);
Run Code Online (Sandbox Code Playgroud)