我搜索了很长时间,并制作了不正确的文件。
我需要什么: 如果我没有与网页交互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);
};
})();
答案 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);
}
我给了按钮一个ID并缩短了小提琴中的时间,以便不必等待几分钟才能看到结果。
作为旁注,您的代码存在一些问题,例如
setInterval(findButtonbyTextContent("Refresh").click(), tijd);
立即调用点击功能并返回undefined
,因此它根本不会执行您认为的操作,并且您不会在任何地方存储对该间隔的引用,初始的setTimeout,以及没有清除间隔的清除,它仍然继续。