在 Javascript 中使用 setTimeout 模拟点击

发布于 2024-11-07 22:43:09 字数 223 浏览 4 评论 0原文

如何使用 setTimeout 模拟点击事件?像这样的东西:

<script>
    window.onload=setTimeout(document.getElementById('mk1').click(),1000);
</script>

<a id="mk1" href="some url">click me</a>

How would I simulate a click event with setTimeout? Something like:

<script>
    window.onload=setTimeout(document.getElementById('mk1').click(),1000);
</script>

<a id="mk1" href="some url">click me</a>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

若沐 2024-11-14 22:43:09

目前,您的代码立即调用 click() 并将返回值传递给 setTimeout。相反,您希望将函数引用传递给 setTimeout

window.onload = function() {
  setTimeout(function() {
    document.getElementById('mk1').click();
  }, 1000);
};

编辑: 正如 @ThiefMaster 指出的,您还希望将函数传递给 onload;即使它看起来可能有效,但它不会做它真正应该做的事情。

Currently your code calls click() immediately and passes the return value to setTimeout. You instead want to pass a function reference to setTimeout:

window.onload = function() {
  setTimeout(function() {
    document.getElementById('mk1').click();
  }, 1000);
};

Edit: As @ThiefMaster points out, you also want to pass a function to onload; even though it might seem to work otherwise, it wouldn't do what it really should be doing.

暖伴 2024-11-14 22:43:09

document.getElementById('mk1').click() 在脚本首次运行时进行评估。您需要将其变成一个函数并将其作为第一个参数传递。

document.getElementById('mk1').click() is evaluating when the script first runs. You need to make it into a function and pass that as the first parameter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文