11
votes

Existe-t-il un moyen de suivre l'accent sur l'onglet avec JavaScript?

  • Nous devons suivre le temps effectif sur le site de nos utilisateurs
  • la plupart des utilisateurs, quand ils sont terminés, laissez l'onglet Ouvrir et déplacez-vous à un autre onglet
  • temps sur place, il est extrêmement inexact

    Y a-t-il un événement JavaScript pour suivre la "perte de mise au point" de l'onglet actuel?


3 commentaires

HMM, je pensais que l'événement de flou déclencherait lorsque l'utilisateur met l'accent sur un autre onglet? Ce qui ne tire bien sûr que si la fenêtre a eu la concentration physique pour commencer.


Question interessante. Je pense la réponse est "non" cependant. Vous pouvez ajouter un gestionnaire "mouseout" au ou quelque chose, et suivez quand la souris quitte la fenêtre (ce qui sera lorsque la souris est déplacée pour sélectionner un autre onglet), mais vous n'avez pas Je sais vraiment si c'est ce qui va se passer.


@scunliffe Je ne vois aucun événement "flou" à partir de en chrome au moins. Je vois "Mouseout".


3 Réponses :


14
votes

Ceci devrait fonctionner à la fois sur l'interrupteur d'onglets et sur la fenêtre du navigateur Perdre la mise au point:

function onBlur() {
    document.body.className = 'blurred';
};
function onFocus(){
    document.body.className = 'focused';
};

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}


4 commentaires

Si cela fonctionne réellement, c'est un morceau de code cool, Lashtal!


Cela a-t-il fonctionné? Je me suis demandé à ce sujet moi-même. Si vous deviez faire des modifications, j'aimerais voir votre solution complète. Merci!


Je viens de tester cela; Cela fonctionne à la fois sur le commutateur de minimisation et de l'onglet dans Chrome, IE8, FF3.5.


Cela ne semble rien déclencher pour moi en chrome v24



3
votes

Je ferais quelque chose avec Mousemove et défilement et comptez un visiteur aussi actif aussi longtemps que de l'un de ces déclencheurs dans un intervalle. Cela les couvrira également quitter le navigateur ouvert et quitter l'ordinateur.


0 commentaires

1
votes

Quel onglet vous parlez? Est-ce votre onglet NAV / MENU ou onglet Navigateur. Je me sens, vous voulez dire un onglet de navigateur! Je pense que ce n'est pas possible avec précision. Mais que se passe-t-il si vous suivez peu d'événements comme MouseMove, Focus, etc., puis déposez un événement que certaines données (comptoir) sur le serveur. Lorsque l'utilisateur est sur votre page, il fera quelque chose comme bouger la souris, cliquez quelque part, etc. SO Différence dans la charge de la première page et le dernier événement peut indiquer la statistique d'utilisation.


0 commentaires