0

所以我在 jQuery 中有我的加载脚本:

function load() {
    $.ajax({
        url: '/urltoload.php',
        cache: false,
        success: function(html){
            //do something
        }
    }

使用 a setInterval,我如何检查用户是否不在页面上?

4

2 回答 2

1

$(window).focus()您可以检查浏览器是否处于活动状态。

$(window).focus(function(){
  // interval here
});
于 2013-08-29T17:15:43.210 回答
1

如果我正确理解了您的问题,您可以使用以下代码检查用户是否“在”页面上以及何时离开:

$(document).ready(function(){
   $([window, document]).focusin(function(){
      //Your logic when the page gets active
   }).focusout(function(){
      //Your logic when the page gets inactive
   });
});

另一种可能更“复杂”的解决方案是每 N 秒检查一次鼠标移动( http://api.jquery.com/mousemove/#fn )。

如果您有交叉浏览问题,您可以查看这个答案,它为不同的浏览器提供了一个很好的解决方法:https ://stackoverflow.com/a/1060034/1720344

更新
超时函数的伪代码是这样的:

setTimeout(function() {
      // Do something after 2 seconds
}, 2000);

根据您的评论,我认为最好“围绕”子功能而不是$(document).ready()(我以前没有做过,超时document.ready,但您可以尝试看看会发生什么;) - 我相信这个功能很简单从document.ready) N 秒后

超时 2 秒,你可以做类似的事情(但我还没有测试过):

$(document).ready(setTimeout(function(){
       $([window, document]).focusin(function(){
          //Your logic when the page gets active
       }).focusout(function(){
          //Your logic when the page gets inactive
       });
    }, 2000));
于 2013-08-29T17:16:19.710 回答