Opera źle wykonuje JavaScript

w dziale Strony WWW w Operze
canticum napisał(a):

Skrypt otwierający zdjęcia w popupach na http://marcinek.poznan.pl/down/o/news.html działa tylko przy jednokrotnym otwieraniu zdjęcia, jeżeli zamknąć popup, reszta zdjęć nie chce się otwierać.
W IE i Firefoxie działa ok.
Czy w skrypcie jest błąd?
pozdrawiam
Wojtek

qviri napisał(a):

Tak. Narzędzia -> Zaawansowane -> Konsola Javascript. Przy zamknięciu i próbie ponownego otworzenia mówi jak następuje:

Javascript URL thread: "javascript:nowe_okno( 'foty/3/4.jpg','Dubliner','width=640,height=480,left=10,top=10');"
Error:
name: TypeError
message: Statement on line 6: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
  Line 6 of inline#1 script in http://marcinek.poznan.pl/down/o/news.html
    okno.close();
  Line 1 of unknown script 
    nowe_okno("foty/3/4.jpg", "Dubliner", "width=640,height=480,left=10,top=10");


Tłumacząc z polskiego na nasz: ponieważ okno było stworzone, więc zmienna okno istnieje; ale jako że okno zamknąłeś sam, to zmienna jest NULL i okno.close() powoduje błąd.

Proponuję warunek if (okno) zmienić na:

if (okno && okno.location != null)


który magicznie powoduje działanie strony w Operze jak należy. Przyznam, że nie testowałem w Firefoksie ani IE, ale powinno zadziałać.

golew napisał(a):

Ale niestety tak bywa na wielu stronach, że zamknięcie pierwszego okna otworzonego przez JS powoduje niemożność otworzenia kolejnych linków czy też obrazków sad

qviri napisał(a):

To nie zamykaj p

canticum napisał(a):

wow, qviri, wielkie dzięki! Teraz wszystko działa. smile
Pozdrowienia!

rrutkows napisał(a):

Originally posted by qviri:

Proponuję warunek if (okno) zmienić na:

if (okno && okno.location != null)


Albo na
 if (okno && okno.closed == false) 

canticum napisał(a):

również dzięki za odpowiedź smile