javascript单击按钮,如果不活动60秒

时间:2014-08-23 16:50:02

标签: javascript button click mouse

我搜索了很长时间,并制作了不正确的文件。

我需要什么: 如果我没有与网页交互1分钟,请执行以下操作: - 点击按钮。 - 如果我还没有互动

,请在30秒后重复点击

当我回到网页(再次互动)时,我不希望这个脚本继续运行......只有当我没有再次互动时。

我来到这里:

function findButtonbyTextContent(text) {
var buttons = document.getElementsByTagName('button');
for (var i=0; i<buttons.length; i++) {
if (buttons[i].firstChild.nodeValue == text)
  return buttons[i];
}
}

function refresh(tijd){
setInterval(findButtonbyTextContent("Refresh").click(), tijd);
}

document.onmousemove = (function() {
var onmousestop = function() {
        refresh(30000);
    }, thread;

return function() {
    clearTimeout(thread);
    thread = setTimeout(onmousestop, 60000);
};
})();

1 个答案:

答案 0 :(得分:1)

以下是我的表现

var int, timer, btn = document.getElementById('button');

document.onmousemove = function () {
    clearTimeout(timer);
    clearInterval(int);
    timer = setTimeout(function() {
        int = setInterval(function() {
            btn.click();
        }, 30000);
    }, 60000);
}

FIDDLE

我给了按钮一个ID并缩短了小提琴中的时间,以便不必等待几分钟才能看到结果。

作为旁注,您的代码存在一些问题,例如

setInterval(findButtonbyTextContent("Refresh").click(), tijd);

立即调用点击功能并返回undefined,因此它根本不会执行您认为的操作,并且您不会在任何地方存储对该间隔的引用,初始的setTimeout,以及没有清除间隔的清除,它仍然继续。