条件刷新页面:javascript

时间:2013-09-20 16:56:02

标签: javascript refresh

好的直接到了这一点

我在页面上有一个文本框和其他一些东西 如果用户在文本框中键入,则页面不应刷新,否则应在一定时间间隔后刷新

我搜索了很多,找不到类似的东西

我是javascript的新手

3 个答案:

答案 0 :(得分:1)

这是一个简单的例子。每3秒检查一次。如果没有输入任何内容,它将刷新,如果输入的内容将等待3秒再刷新。

http://jsfiddle.net/9ARrG/

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的工作样本。