2010-10-14 5 views
5

J'ai une application Web qui lance une URL dans d'autres fenêtres/onglets. Je voudrais vérifier si la fenêtre/onglet existe; sinon, je veux le créer autrement je voudrais le choisir en première position. J'utilise:Contrôle de la fenêtre du navigateur via Javascript

wf=window.open(address, web_form_target, 'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1,width=640,height=450'); 
if(wf!=null) 
    wf.focus(); 

Mais il va bien que la première fois (dans IE, pas dans Firefox); si je crée un nouvel onglet dans la fenêtre, quand j'appelle window.open() rien ne se passe; si je ferme la fenêtre, il la recrée mais la conserve iconisée ... Y a-t-il un moyen que je puisse suivre pour obtenir un bon résultat? Merci d'avance Salutations,

Répondre

2

Voici un code que j'ai utilisé depuis des siècles et qui fonctionne toujours autant que je sache. Notez que oWindow a une portée globale et que je la passe au second paramètre de open en tant que chaîne, pas en tant qu'objet lui-même. Ensuite, je teste pour voir si elle est fermée avant d'ouvrir à nouveau ... si elle est déjà ouverte, alors je viens de donner le focus:

var oWindow; 

function openWindow(p_strURL) { 

    if(!oWindow || oWindow.closed) { 
     oWindow = window.open(p_strURL, "oWindow", "status, scrollbars, resizable, width=800, height=500"); 
     if(!oWindow.opener) { 
      oWindow.opener = window; 
     } 
    } 
    else { 
     oWindow.location.href = p_strURL; 
     oWindow.focus(); 
    } 
} 

espère que cela vous aide à trouver une solution,

Kevin

+0

Cool, mon ami, c'est un grand pas en avant pour moi. +50 pour vous !! – Cris

0

web_form_target est le nom de la fenêtre.

if (wf.name !== web_form_target) { 
    // create it 
} 
+0

Je l'ai essayé, mais si j'ouvre un nouvel onglet dans la même fenêtre du navigateur ouvert, l'appel à la fenêtre échoue. – Cris

Questions connexes