0

好的,直奔主题

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

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

我是 javascript 新手

4

3 回答 3

1

这是一个简单的例子。每 3 秒运行一次检查。如果没有输入,它会刷新,如果输入了什么,它会等待 3 秒再刷新。

http://jsfiddle.net/9ARrG/

HTML

<input onkeyup="resetTimer = true">

JS

resetTimer = false;
setInterval(function() {
    if(!resetTimer) {
        location.reload();
    }
    resetTimer = false;
}, 3000);
于 2013-09-20T17:10:46.013 回答
0

给你的 input/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;
}
于 2013-09-20T17:08:31.363 回答
0

使用该document.activeElement属性有条件地确定哪个元素具有焦点。

function refreshPageUnlessFocusedOn (el) {

  setInterval(function () {
    if(el !== document.activeElement) {
      document.location.reload();
    }
  }, 3000)

}

refreshPageUnlessFocusedOn(document.querySelector('textarea'));

在此处查看jsfiddle以获取工作示例。

于 2013-09-20T17:19:30.657 回答