在 Safari/Chrome 中,如何在 ready() 和 focus() 上触发函数 A,在 blur() 上触发

In Safari/Chrome, how can I trigger a function A on both ready() and focus() and a function B on blur()?

本文关键字:blur focus 函数 Safari ready Chrome      更新时间:2023-09-26

我有一个计数器,当窗口处于焦点状态时倒计时,当窗口处于模糊状态时停止计数。

我的代码与Firefox和IE完美配合,因为使用FF或IE,focus((事件在文档加载时触发。

但在Safari/Chrome中并非如此。

有谁知道我如何在加载 Safari/Chrome 时触发 countDown(( 函数?多谢

我的代码具有以下结构:

$(document).ready(function(){    
         $(window).focus(function(){
              countDown();      
          });
       $(window).blur(function(){
              stopCount();      
          });
});

你把countDown也从准备好打电话怎么样?不过,您可能需要先检查窗口是否仍然具有焦点。你应该确保countDown没有被调用 - 或者使倒计时"抵抗"额外的调用。

或者另一种方法,应该使代码更干净一些,只需从$(document).ready调用$(document).focus()

更多背景:

$(document).ready(function(){
    $(window).focus(function(){
        countDown();      
    }).blur(function(){
        stopCount();      
    }).focus();
});

你能尝试这样的东西吗:

if ( $.browser.webkit ) {
   countDown();
}

我认为这将检查它是否是 webkit 浏览器,然后触发 countDown(( 事件