2015-10-08 16 views
0

我有這個代碼用於檢查用戶是否在頁面中處於活動狀態。但是,一旦您將光標留在頁面中,就無法在Firefox上工作。看起來mouseover仍然被觸發。但完全在Chrome上工作。用戶空閒時觸發事件,Firefox瀏覽器無法工作

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/

就如何解決這一問題上的瀏覽器火狐請幫助。 謝謝:)

+0

我並不確定是否在旁邊,但是如果您可能添加了一種方法來檢查鼠標位置座標到窗口,並且在檢查移動事件的計時器間隔中,還檢查座標是否未更改。如果它是Firefox中的錯誤,那麼可能會解決這個問題。對不起,這不是一個答案,但只是一個想法,直到你找到答案。 – Casey

回答

0

求助 我正在用Ruby on Rails來做。 我把文件放在assets/javascripts目錄下。 終於解決了通過將其添加到所需的js中的application.js,如:

//= require js_file 

而且,爲了去除jQuery的文檔功能很重要,因爲它會導致同樣的錯誤在Firefox。僅添加主文件的js代碼,它將自動加載。:

重要刪除: (function($){}); $(document).ready(function(){});

而且,在代碼底部,添加類似:

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

現在,Chrome和Firefox的效果很好。

相關問題