Javascript 检查文档是否有鼠标移动或触摸,如屏幕保护程序

Javascript 检查文档是否有鼠标移动或触摸,如屏幕保护程序,javascript,jquery,html,Javascript,Jquery,Html,正如标题所说,我想知道javascript(jquery)是否有可能检查文档中是否有任何操作,如果没有。应该会弹出屏幕保护程序之类的东西! 如果有人在页面上,看这里,看那里,过了一会儿他什么也不做,鼠标(或触摸手指)静止不动,我想在一分钟后不动地说出文档 function noactivity() { //after 60000ms start something here } 我希望整个文档都是全局的! 感谢ted可以在jquery中使用以下工具相对简单地完成: setTimeout();

正如标题所说,我想知道javascript(jquery)是否有可能检查文档中是否有任何操作,如果没有。应该会弹出屏幕保护程序之类的东西! 如果有人在页面上,看这里,看那里,过了一会儿他什么也不做,鼠标(或触摸手指)静止不动,我想在一分钟后不动地说出文档

function noactivity() { //after 60000ms start something here }
我希望整个文档都是全局的!
感谢ted

可以在jquery中使用以下工具相对简单地完成:

setTimeout();

不久前,我在处理iframe大小调整问题时遇到了这个问题。我想要的是在
文档的高度发生变化时告诉父页面

我发现jQuery并没有直接提供这样的功能。主要原因是,当您观看DOM时,有太多的活动发生在DOM上,而这些活动是不可见的(
bind
)。但是,您可以观察特定属性,如鼠标在文档上移动

$(document).mousemove(function(e){
    console.log(e.pageY);
    console.log(e.pageX);
});
但是,这一点也不意味着用户正在与您的页面交互。这仅仅表示用户在您的页面上,并且他的鼠标正在移动。用户也可能不会移动鼠标,而只是使用键盘与您的页面进行交互。所以现在你还得注意键盘的交互作用

$(document).keyup(function(e){
    console.log('active');
});
使用这些函数,您可以创建一个倒计时函数,在设置的时间间隔后检查标志。如果用户进行活动,则可以设置该标志。并且在函数“noactivity()”函数id设置了一段时间后,该标志尚未设置

观察文档活动的另一种方法是观察正在修改的DOM子树

jQuery(document).bind('DOMSubtreeModified', function() {
    console.log('active');
});
这适用于Chrome/FireFox/IE8+,但不适用于Opera(任何版本)。主要原因是该操作对浏览器资源的占用太大。我不鼓励使用这种方法,因为监听DOM变异事件可能会损害性能,相关的W3C工作组正试图找到一种更好的方法来做到这一点,因此不推荐使用DOM变异事件——很难或不可能实现一个好的、高性能的实现

我并不是说我上面提到的其他选择也很好。如果您正在观看
文档
,则这些操作也很昂贵,应该避免。这些选项的另一个问题是iframe内容不是您的
文档的特定部分
,如果用户与iframe内容交互,这些选项将不起作用

因此,结论是W3C还没有最终确定一种廉价的方式,用户可以通过这种方式查看文档子树中的更改