在特定时间调用JavaScript函数

比如我想在10.00.00.00上调用一个js函数,我该怎么办?

<script type="text/javascript"> var now = new Date(); var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 30, 0, 0) - now; setTimeout(function{openAPage(), setInterval(openAPage, 60*1000)}, millisTill10) function openAPage() { var startTime = new Date().getTime(); var myWin = window.open("http://google.com","_blank") var endTime = new Date().getTime(); var timeTaken = endTime-startTime; document.write("<br>button pressed@</br>") document.write(new Date(startTime)); document.write("<br>page loaded@</br>") document.write(new Date(endTime)); document.write("<br>time taken</br>") document.write(timeTaken); myWin.close() } </script> 

我期望从00.30这个代码将打开谷歌,然后每1分钟后,它会再次做到这一点? 那个代码有什么问题?

你需要setTimeout来设置一个计时器和date来计算计时器需要走多长时间,直到触发。

 var now = new Date(); var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0, 0) - now; if (millisTill10 < 0) { millisTill10 += 86400000; // it's after 10am, try 10am tomorrow. } setTimeout(function(){alert("It's 10am!")}, millisTill10); 

我的解决scheme在特定的时间运行脚本,btw没有错误检查负超时。

 //year, month 0-11, date, hour, min (can add ,sec,msec) var eta_ms = new Date(2015, 0, 21, 17, 0).getTime() - Date.now(); var timeout = setTimeout(function(){}, eta_ms); 

那么你可以按时使用节点包

假设代码位于将在10:00之前加载的网页上,并且在10:00仍将被查看,您可以使用setTimeout()来设置一个定时事件。 该函数需要执行一些JS语句,以及执行之前的毫秒数。 你可以用内置的date函数很容易地find第二部分。