当用户空闲,不在Firefox浏览器上工作时触发事件

Fire Event When User is Idle, Not Working on Firefox Browser

本文关键字:工作 事件 浏览器 Firefox 用户 不在      更新时间:2023-09-26

我有这个代码来检查用户是否在页面中活动。但在Firefox中,一旦光标停留在页面上,就无法工作了。鼠标悬停似乎仍然触发。但在Chrome上运行得很好。

idleTimer = null;
idleState = false;
idleWait = 2000;
(function ($) {
  $(document).ready(function () {
    $('*').bind('mousemove keydown scroll', function () {        
        clearTimeout(idleTimer);                    
        if (idleState == true) {                 
            // Reactivated event
            $("body").append("<p>Welcome Back.</p>");            
        }
        idleState = false;            
        idleTimer = setTimeout(function () {                 
            // Idle Event
            $("body").append("<p>You've been idle for " + idleWait/1000 + " seconds.</p>");
            idleState = true; }, idleWait);
        });
    $("body").trigger("mousemove");    
  });
}) (jQuery)

本教程链接:https://css-tricks.com/snippets/jquery/fire-event-when-user-is-idle/

请帮助如何在Firefox浏览器上修复此问题。谢谢:)

SOLVED我正在用Ruby on Rails做这件事。我把文件放在assets/javascripts目录下。最后通过将其添加到application.js中的所需js中来解决这个问题,例如:

//= require js_file

并且,重要的是要删除jquery文档函数,因为它会在Firefox中导致相同的错误。只添加主js代码到文件中,它将自动加载:

重要删除:(function ($) {});美元(文档)。(function () {});

在代码的底部,添加如下:

$(document).ready(ready);
$(document).on("page:load", ready);

现在,Chrome和Firefox都运行良好。