正如标题所说,我想知道javascript(jquery)中是否有可能检查文档中是否有任何操作,如果没有。应该弹出屏幕保护程序之类的东西!如果有人在页面上看这里,看那里,过了一会儿他没有做任何事情,鼠标(或触摸手指)静止不动,我想说一分钟后没有活动的文档......
function noactivity() { //after 60000ms start something here }
我想要整个文档的全局!谢谢泰德
正如标题所说,我想知道javascript(jquery)中是否有可能检查文档中是否有任何操作,如果没有。应该弹出屏幕保护程序之类的东西!如果有人在页面上看这里,看那里,过了一会儿他没有做任何事情,鼠标(或触摸手指)静止不动,我想说一分钟后没有活动的文档......
function noactivity() { //after 60000ms start something here }
我想要整个文档的全局!谢谢泰德
我在处理 iframe 大小调整问题时遇到了这个问题。我想要的是在document
.
我发现 jQuery 并没有直接提供这样的功能。主要原因是 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 突变事件 - 很难或不可能做好和高性能的实现。
我并不是说我上面提到的其他选项也很好。如果您正在观看,它们也是昂贵的操作document
,应该避免。这些选项的另一个问题是 iframe 内容不是您的特别部分,document
如果用户正在与 iframe 内容交互,这些选项将不起作用。
因此得出的结论是,W3C 还没有最终确定一种用户可以观察文档子树变化的廉价方式。