2010-07-05 4 views
4

Je suis en train de faire quelque chose de similaire à ce ...Comment vérifier si la fenêtre est active?

if (window.onblur) { 
    setTimeout(function() { 
     DTitChange(name) 
    }, 1000) 
} else { 
    document.title = dtit 
} 

Le window.onblur ne semble pas fonctionner bien, est-il quelque chose que je peux le remplacer par?

Répondre

0

Vous devez affecter une fonction à window.onblur, dans votre question vous testez uniquement si la propriété onblur existe. Mais window.onblur ne fonctionne pas toujours correctement dans tous les navigateurs. L'article Detecting focus of a browser window montre comment configurer ceci. Dans votre cas, ce serait quelque chose comme:

function DTitBlur() { 
    /* change title of page to ‘name’ */ 
    setTimeout(function() { 
     DTitChange(name) 
    }, 1000); 
} 

function DTitFocus() { 
    /* set title of page to previous value */ 
} 

if (/*@[email protected]*/false) { // check for Internet Explorer 
    document.onfocusin = DTitFocus; 
    document.onfocusout = DTitBlur; 
} else { 
    window.onfocus = DTitFocus; 
    window.onblur = DTitBlur; 
} 
1

Qu'est-ce que vous voulez dire par ne semble pas fonctionner? Voici ce que vous êtes en train de dire:

If there's an onblur event handler: 
    execute DTitChange once ever second. 
Else 
    document.title = dtit 

Ce qui n'est probablement pas ce que vous voulez. Essayez

window.onblur = function() { 
    setTimeout(function() { DTitChange(name) }, 1000); 
}; 

également vous assurer que vous définissez un gestionnaire onfocus pour effacer le délai d'attente si vous voulez arrêter qui se passe lorsque l'utilisateur retourne. :)

Questions connexes