2010-10-14 21 views
5

Ho un'app Web che avvia un URL in altre finestre/schede. Vorrei controllare se la finestra/scheda esiste; se no, voglio crearlo altrimenti mi piacerebbe prenderlo in prima posizione. Io uso:Controllo della finestra del browser tramite 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(); 

ma va bene solo la prima volta (in IE, non in Firefox); se creo una nuova scheda nella finestra, quando chiamo window.open() non succede nulla; se chiudo la finestra la ricrea ma la mantiene iconizzata ... C'è un modo che posso seguire per ottenere un buon risultato?

Grazie in anticipo Saluti, c.

risposta

2

Ecco un codice che ho utilizzato per anni che funziona ancora per quanto ne so. Si noti che oWindow ha un ambito globale e che lo passo al secondo parametro di open come stringa, non come oggetto stesso. Poi, ho test per vedere se è chiuso prima di tentare di aprire di nuovo ... se è già aperto, poi ho appena do fuoco:

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(); 
    } 
} 

Spero che ti aiuta a trovare una soluzione,

Kevin

+0

Cool, amico mio, questo è un grande passo avanti per me. +50 per te !! – Cris

0

web_form_target è il nome della finestra.

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

ho provato, ma se apro una nuova scheda nella stessa finestra del browser aperto, la chiamata alla finestra non riesce. – Cris

Problemi correlati