2011-05-17 93 views
5

如何使用setTimeout模拟点击事件?喜欢的东西:在Javascript中使用setTimeout模拟点击

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

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

如果你真的想模拟点击,那么卡萨布兰卡有正确的答案。如果您只是想将网页重定向到其他网址,请将值分配给window.location – 2011-05-17 13:56:49

回答

12

目前你的代码立即调用click()并将返回值setTimeout。你不是想传递一个函数引用setTimeout

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

编辑:作为@ThiefMaster指出的那样,你也想给一个函数传递给onload;即使它看起来有其他作用,它也不会做它应该做的事情。

+2

,您需要将您的呼叫包装在匿名功能中。现在您将setTimeout **返回值**分配给'window.onload' – ThiefMaster 2011-05-17 13:52:11

+0

@ThiefMaster:谢谢,我完全忽略了那部分代码。 :) – casablanca 2011-05-17 13:53:12

+0

“似乎工作,否则”:是的,但它不会执行onload,但立即在这种情况下 - 它会尝试调用一个整数当onload火 – ThiefMaster 2011-05-17 13:56:39

1

document.getElementById('mk1').click()正在评估脚本第一次运行的时间。你需要把它变成一个函数,并把它作为第一个参数传递。