web-dev-qa-db-fra.com

Comment changer la mise au point du navigateur d'un onglet à un autre

J'ai un client de discussion JavaScript exécutant dans un onglet Navigateur (appelez-le A). Maintenant, lorsqu'un message arrive l'utilisateur peut figurer sur un autre onglet Navigateur (appelez-le onglet B). Je cherche des moyens de modifier la mise au point de l'onglet B sur mon client de chat (onglet A) lorsqu'un tel message arrive.

Je n'ai pas pu trouver un moyen de faire cela.

21
Max

C'est ( non possible - en raison de problèmes de sécurité.

sauf par "onglet", vous voulez dire une fenêtre et une fenêtre contextuelle qui (due aux préférences de navigateur) ouvertes dans un nouvel onglet. Si tel est le cas, alors oui, vous pouvez.

//focus opener... from popup
window.opener.focus();

//focus popup... from opener
yourPopupName.focus(); 
16
scunliffe

Il est possible de déplacer la mise au point sur l'onglet A au moyen d'une alerte dans l'onglet A.G. alerte ("nouveau message")

Cependant, vous devez faire attention à l'utiliser car il est très susceptible d'ennuyer les gens. Vous ne devez l'utiliser que si vous le faites facultatif dans votre application. Sinon, mettre à jour l'onglet Le titre de A A A AT et/ou le FAVICON semblerait mieux comme le dit NC3B.

7
Autoabacus

Le mieux que vous puissiez probablement changer le titre de la page alertant l'utilisateur dont l'onglet a besoin d'attention (peut-être aussi le Favicon - regardez comment MEEBO le fait, c'est vraiment ennuyeux mais efficace)

6
nc3b

cela a fonctionné pour moi sur la forme Soumettre pour rouvrir la fenêtre cible. Donc, il appellera la fenêtre.open sur la même cible (ou nouvelle si elle est modifiée), puis continuez à soumettre le formulaire.

        var open_target = function (form){
            var windowName = jQuery(form).attr('target');
            window.open("", windowName );
            return true;
        };
    <form target="_search_elastic" onsubmit="return open_target(this);">
      </form>
4
Artistan

Utilisation JavaScript, la déclenchement d'une alerte peut avoir l'effet souhaité. Exécutez ce code dans votre console ou ajoutez à votre fichier HTML dans un onglet et passez à un autre onglet dans le même navigateur.

setTimeout(function(){ 
    alert("Switched tabs");
}, 
5000);

L'alerte apparaissant après que le délai d'attente déclenchera le commutateur d'onglets. Ou vous pouvez faire quelque chose de similaire! Pour des raisons UX Cependant, vous pouvez toujours utiliser un ping ou un ajout et un indicateur comme dans le compteur de messages de Facebook dans le titre de la page ((1) Facebook). Vous pouvez également expérimenter avec Notifications API (expérimental).

3
William