好的直接到了这一点
我在页面上有一个文本框和其他一些东西 如果用户在文本框中键入,则页面不应刷新,否则应在一定时间间隔后刷新
我搜索了很多,找不到类似的东西
我是javascript的新手
答案 0 :(得分:1)
这是一个简单的例子。每3秒检查一次。如果没有输入任何内容,它将刷新,如果输入的内容将等待3秒再刷新。
HTML
<input onkeyup="resetTimer = true">
JS
resetTimer = false;
setInterval(function() {
if(!resetTimer) {
location.reload();
}
resetTimer = false;
}, 3000);
答案 1 :(得分:0)
为您的输入/ textarea提供ID
<input id="textbox" />
// OR
<textarea id="textbox"></textarea>
然后,设置计时器以刷新页面。如果有变化,请重置计时器。
var originalTimer = 15000; // here's the original time until page refreshes
var timer = originalTimer; // timer to track whether to refresh page
// now every 1 second, update the timer
setInterval(function() {
timer -= 1000; // timer has gone down 1 sec
// if timer is less than 0, refresh page
if (timer <= 0) window.location.reload();
},1000); // repeat every 1 second (1000 ms)
document.getElementById("textbox").onchange = function() {
// detect textbox changes, reset timer
timer = originalTimer;
}
答案 2 :(得分:0)
使用document.activeElement
属性有条件地确定哪个元素具有焦点。
function refreshPageUnlessFocusedOn (el) {
setInterval(function () {
if(el !== document.activeElement) {
document.location.reload();
}
}, 3000)
}
refreshPageUnlessFocusedOn(document.querySelector('textarea'));
查看jsfiddle here的工作样本。