Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze skryptem wykorzystujacym window.open
Forum PHP.pl > Forum > Po stronie przeglądarki
a79rtur
czesc. mam nastepujacy skrypt, otwiera on okno na srodku ekranu a w nim jest obrazek, nad obrazkiem margines pod obrazkiem margines a na nim opis obrazka. okno sie zamyka po kliknieciu w dowolne miejsce.
  1. var win = null;
  2. function oknozdjecie(mypic,w,h,opis)
  3. {
  4. LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
  5. TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
  6. settings='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',resizable=no,toolbar=no,menubar=no,location=no,personalbar=no,scrollbars=no
  7. status=no,directories=no'
  8.  
  9. win = window.open("","",settings);
  10. win.document.write("<HTML><HEAD><TITLE>&nbsp;</TITLE></HEAD><BODY style='margin: 0px; background-color: black; text-align: center;'><div style='height: 30px;'>&nbsp;</div><img src="+mypic+" onClick='javascript:self.close();'><div style='color: white; font-size:12px;'>"+opis+"</div></BODY></HTML>");
  11. }

wywolanie
  1. <a href="{MINIATURKA_LINK}" onclick="oknozdjecie('{FOTO}','{FOTO_W}','{FOTO_H}','{FOTO_OPIS}'); return false;">
  2. <img src="{MINIATURKA}" border="0"></a>


w blokach oczywiscie sa wstawione przez php odpowiednie wartosci.

otoz na IE skrypt dziala dobrze, natomiast na FireFoxie nie do konca.
1. gdy juz sie zaladuje okno z obrazkiem to wskaznik ma dalej klepsydre i pasek ladowania zawartosci jest gdzies w polowie , tak jakby cos sie dalej ladowalo mimo ze wszystko juz jest wyswietlone poprawnie.
2. gdy opis sie nie miesci w bloku na dole to IE poprostu przycina natomiast FF dodaje suwaki mimo ze w parametrach okna jest podane zeby nie dawał - scrollbars=no
3. (dowolna przegladarka) jesli w opisie do obrazka jest ' lub " to rozwala to skrypt poniewaz cudzyslow zamyka argument document.write. dla ' dalem addslashes i pomoglo, dla " zamieniam na 2x' .da sie to jakos inaczej rozwiazac zebym mogl w opisie dawac jednak " ?
plewa
  1. var win = null;
  2. function oknozdjecie(mypic,w,h,opis)
  3. {
  4. LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
  5. TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
  6. settings='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+& #39;,resizable=no,toolbar=no,menubar=no,location=no,personalbar=no,scr
  7. ollbars=no,status=no,directories=no'
  8.  
  9. win = window.open("","",settings);
  10. win.document.write("<HTML><HEAD><TITLE>&nbsp;</TITLE></HEAD><BODY style='margin: 0px; background-color: black; text-align: center;'><div style='height: 30px;'>&nbsp;</div><img src="+mypic+" onClick=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1'javascript:self.close();'>
    A TA FUNKCJA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1<div style='color: white; font-size:12px;'>"+opis+"</div></BODY></HTML>");
  11. }

Na pewno ta funkcja to zamyka
dam ci moze inny skrypt moze nie bedziezs mial problemów:
  1. <script language="JavaScript1.2">
  2. <!--
  3. window.open('strona.html', 'plum', 'toolbar=no,menubar=no,scrollbars=no,resizable=no,height=150,width=200,left=6
  4. 0,top=400');
  5. //-->

smile.gif
a79rtur
eeee, chyba cos sie nie zrozumielismy rolleyes.gif , ona ma zamykac, takie jest jej dzialanie prawidlowe . problem jest opisany w tych 3 punktach nizej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.