2010-10-14 26 views
5

Mam aplikację internetową, która uruchamia adres URL w innych oknach/kartach. Chciałbym sprawdzić, czy okno/karta istnieje; jeśli nie, chcę stworzyć to jeszcze, chciałbym wybrać go na pierwszej pozycji. używam:Sterowanie oknem przeglądarki za pomocą 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(); 

Ale to idzie dobrze tylko za pierwszym razem (w IE, nie w Firefoksie); jeśli utworzę nową kartę w oknie, gdy zadzwonię do window.open() nic się nie dzieje; jeśli zamknę okno, odtwarza je, ale zachowuje je w formie ikon ... Czy istnieje sposób, w jaki mogę podążać, aby uzyskać dobry wynik?

Z góry dziękuję Pozdrowienia, c.

Odpowiedz

2

Oto kod, którego używam od wieków, który nadal działa tak daleko, jak wiem. Zauważ, że OWindow ma zasięg globalny i że przekazuję go do drugiego parametru otwartego jako ciąg, a nie do samego obiektu. Potem sprawdź, czy jest zamknięte przed próbuje otworzyć ponownie ... jeśli jest już otwarty, to ja po prostu dać to skupić:

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

Nadzieję, że pomoże Ci znaleźć rozwiązanie,

Kevin

+0

Fajnie, przyjacielu, to dla mnie duży krok naprzód. +50 dla ciebie !! – Cris

0

web_form_target to nazwa okna.

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

Próbowałem już, ale jeśli otworzę nową kartę w tym samym oknie otwartej przeglądarki, wywołanie okna nie powiedzie się. – Cris

Powiązane problemy