IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Firefox : Donner focus à un autre onglet


Sujet :

JavaScript

  1. #21
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Faut regarder du côté des plugins genre Tab Mix Plus : regarde le code JavaScript de ce plugin, y a peut-être un moyen. Sinon, je viens de tomber là-dessus : http://developer.mozilla.org/en/docs/window.open#FAQ

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    J'ai cherché sur Internet, mais j'ai l'impression que le code source de Tab Mix Plus n'est pas accessible. Cela dit, vu que c'est une extension Firefox, je n'y connais pas grand chose, mais je ne suis pas sûre que ce soit écriten JavaScript. Et même si ça l'était, on n'a pas les même droits en étant dans une page Web que lorsqu'on est dans le code d'une extension : cf post ici.

    Sinon, merci pour le lien, il y a plein de choses intéressantes, il va falloir que je creuse...

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    Bon... J'ai trouvé une solution à mon problème. Par contre, je pense que c'est du 100% Firefox. Code inspiré de ce lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     function parcourirTab () {
      // On demande à l'utilisateur d'autoriser à exécuter des actions demandant un privilège particulier
      // en principe interdit pour des raisons de sécurité.
      netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
      var maFenetre;
     
      var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
               .getService(Components.interfaces.nsIWindowMediator);
      for (var found = false, index = 0, browserInstance = wm.getEnumerator('navigator:browser').getNext().getBrowser();
           index < browserInstance.mTabContainer.childNodes.length && !found;
           index++) {
     
        // Récupèrer l'onglet suivant
        var currentTab = browserInstance.mTabContainer.childNodes[index];
        var fenCurrentTab = currentTab.linkedBrowser.contentDocument.defaultView;
     
        // Est-ce que cet onglet contient notre attribut personnalisé ?
        // if (currentTab.hasAttribute('nomAttribut')) {
        if (fenCurrentTab.name == 'nomFenetre') {
     
          // Oui--Le sélectionner et lui donner le focus.
          browserInstance.selectedTab = currentTab;
     
          // Donner le focus à *ce* navigateur au cas où un autre l'aurait
          browserInstance.focus();
     
          maFenetre = currentTab.linkedBrowser.contentDocument.defaultView;
     
          found = true;
        }
      }
     
     // Actions possibles sur maFenetre
     
     }
    2 inconvénients à la solution :
    - je pense que ça ne marchera pas sur autre chose que Firefox
    - ca implique que l'utilisateur accepte d'accorder des privilèges spéciaux lors de l'exécution de ce script.

    Avantages :
    - je peux donner le focus à on onglet
    - je peux donner le focus à on onglet, même si je n'en ai pas conservé la référence lors d'un window.open
    - je peux même exécuter des fonctions JavaScript sur les fenêtres en question, même si elles ne sont pas dans le même domaine (cf contraintes de sécurité)

    Marine

  4. #24
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut. Je suis tombé sur ce sujet par hasard, alors que j'ai eu un cas similaire avec Firefox et j'ai trouvé une solution toute simple; On sait que window.open avec 2 paramètres ouvre la page dans un nouvel onglet. Pour obtenir une popup (donc une nouvelle fenêtre), il suffit d'ajouter le 3ème paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="var mafen=window.open('http://developpez.com/','nom','width=800,height=800,scrollbars=yes');try{ mafen.window.focus();}catch(e){};"
    Le focus dans le try permet de retomber sur la même fenêtre (ou onglet) si elle est déjà ouverte. Et même avec la case "basculer sur l'onglet" décochée dans les options, l'onglet ou la popup aura le focus à son ouverture. A noter qu'IE ouvre une popup dans les 2 cas (pas trop testé)... A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Mettre le focus sur un autre onglet
    Par Jazz_ dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/07/2010, 16h24
  2. empécher l'accès à d'autres onglets
    Par tibs dans le forum MFC
    Réponses: 3
    Dernier message: 08/03/2006, 19h44
  3. [C#][.Net 2.0] donner focus à Combobox, après click sur treeview
    Par Harry_polin dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/02/2006, 22h27
  4. Focus et autres complications
    Par masto dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 13/09/2005, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo