每10秒执行一次(javascript)代码,但也会在0秒后启动

时间:2014-06-24 23:24:06

标签: javascript html timer setinterval

我想每10秒执行一次代码,但是在第一次点击后。我的意思是当访问者在开始时点击页面上的任何位置然后每10秒钟点击时,我希望代码执行。

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<script type="text/javascript">
    document.body.onclick= function(){
        window.open('http://www.google.com', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 5, top = 5');
    }
</script>

<input type="button" value="button" onclick="">
</body>
</html>

请帮助我,我迫切需要这个代码。

3 个答案:

答案 0 :(得分:0)

你可以使用jQuery做这样的事情。

$(function() {
  $('html').on('click', function(){
    $.setTimeout(function() {
      // do something every 10 seconds after the first click.
    }, 10000);
  });
});

当然,您必须包含jQuery库。

答案 1 :(得分:0)

以下是纯javascript中的一个示例,虽然我不确定您要实现的目标:

var running=false, timeout;
document.body.onclick= toggleScript;

function toggleScript(){
    running=!running;
    if(!running) clearTimeout(timeout);
    else doTheLoop();
}

function doTheLoop(){
    /* Do something */
    timeout = setTimeout(doTheLoop,10000);
}

JS Fiddle example

修改

点击here,查看它是否与您的代码一起运行(window.open)。

答案 2 :(得分:-1)

你的意思是这样的:

function doSomething() {
    window.open('google.com', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 5, top = 5');
}
document.body.onclick=function() {
    document.body.onclick = null; // Disable the onclick
    doSomething();
    setInterval(doSomething, 10000);
}

setInterval的第二个参数是以毫秒为单位的时间,这就是我传入10000(10000毫秒= 10秒)的原因。

第一个参数是您要执行的功能。您还可以使用匿名函数,这更适合传递参数:

setInterval(function() { doSomething(); }, 10000);

要在评论中解决作者的请求,以下代码将在单击文档时打开一个弹出窗口,然后每10秒“刷新”5次。

var intervalCounter = 0, intervalId = 0;
var intervalDelay = 10000; // Time in milliseconds
var popupWindow = null, popupWindowURL = "http://www.google.com";
var urlIndex = 0;
var urlList = [
    "http://www.google.com",
    "http://www.youtube.com",
    "http://www.yahoo.com"
];
function refreshPopup() {
    if (popupWindow && !popupWindow.closed) {
        //popupWindow.location.reload(); // Some browsers may not allow this
        popupWindow.location.href = popupWindowURL;
    }
    if (intervalId && (++intervalCounter) > 5) {
        clearInterval(intervalId);
        intervalCounter = 0;
    }
}
// User clicked on the page somewhere
document.body.onclick=function() {
    // If no popup window exists, then create it
    if (!popupWindow || popupWindow.closed) {
        urlIndex = urlIndex < urlList.length ? urlIndex : 0;
        popupWindowURL = urlList[urlIndex]
        urlIndex++;
        popupWindow = window.open(popupWindowURL, 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 5, top = 5');
    }
    clearInterval(intervalId);
    intervalId = setInterval(refreshPopup, intervalDelay); //
}