Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js]Tworzenie nowego okna po kliknieciu na link
Forum PHP.pl > Forum > Przedszkole
szajba7
Dobry wieczor. Mam problem, pewnie jest on malusi, niestety nie potrawie go rozwiazac - dopiero poznaje js (i jak na razie go nie lubie ;P). Here it goes: mam miniaturke obrazka, po kliknieciu chcialbym aby odpalilo sie nad miniaturka okno o wymiarach dopasowanych do normalnego rozmiaru tego obrazka. Napisalem wszystko i na FF dziala slicznie, niestety na IE juz nie sad.gif
  1. <?php
  2. <a href="galeria/maxi/'.$lista[$id].'" onclick='window.open("galeria/maxi/'.$lista[$id].'", "'.$lista[$id].'", "width='.$dlugosc.', height='.$wysokosc.', scrollbars=1"); return false; target=_blank'><img src="galeria/mini/'.$lista[$id].'" width="122" height="128" /></a>
  3. ?>

Lub dla wiekszej przejrzystosci juz po stronie klienta (ten sam kod)
  1. <a href="galeria/maxi/kratka1.jpg" onclick='window.open("galeria/maxi/kratka1.jpg", "kratka1.jpg", "width=620, height=420, scrollbars=1"); return false; target=_blank'><img src="galeria/mini/kratka1.jpg" width="122" height="128" /></a>


Sprawdzalem skladnie window.open, niby poprawna, kombinowalem tez z target'em. Bug jest pewnie widoczny jak na dloni, tylko ja slepy, to u mnie normalne czasami, wiec z gory przepraszam smile.gif

I korzystajac z okazji - czy mam mozliwosc ustawienia CSS dla takiego pop-up'a ?
bogdan89
nie wpisałeś poprawnie parametrów w swoim odwołaniu do window.open();
ja jakos niedawno zrobiłem cos takiego:
  1. <script type="text/javascript" language="JavaScript">
  2. function show(imgsrc, winWidth, winHeight) {
  3. winTop = 50;
  4. winLeft = 50;
  5.  
  6. image = window.open('','','toolbar=no, scrollbars=auto, resizable=no, status=no, location=no, directories=no, width='+winWidth+', height='+winHeight+', menubar=no, left='+winLeft+', top='+winTop);
  7. image.document.writeln("<head><link rel='stylesheet' type='text/css' href='style.css'>");
  8. image.document.writeln("<title>Tytul okienka</title></head>");
  9. image.document.writeln("<body style='margin:0px;padding:0px;'>");
  10.  
  11. image.document.writeln("<img style='cursor:hand;' alt='zamknij okno' onClick='java script:window.close();' src="+imgsrc+">");
  12. image.document.writeln("</body>");
  13. }


i do tego link:
  1. <a href="java script:show('sciezka do zdjecia', 'szerokosc', 'wysokosc');">link</a>


zobacz ze tutaj bez problemu mozesz sobie dodać to co tylko zechcesz do utworzonego przez JS okienka...
no i działa we wszystkich przeglądarkach winksmiley.jpg

pozdrawiam
erix
Kurde, czepiliście się tego java script:!

Komplikujecie sobie życie... Najlepsze są najprostsze i uniwersalne rozwiązania:
  1. <a href="obrazek.jpg" onclick="window.open(this.href)">test</a>
szajba7
Bogdan89: Dziekuje, Twoj przyklad strasznie przyda mi sie do wrzucania styli w nowym oknie - sam zupelnie bym nie wpadl na taki sposob.
Blad u siebie znalazlem w drugim argumencie - IE nie zezwala na nazwanie takiego okna jak ja to zrobilem ("plik.jpg").

Erix: Rowniez dziekuje za zainteresowanie tematem. Niestety przyklad ktory podales nie robi tego, czego oczekiwalem (albo zle go wdrazam). Twoj odwiera mi linka, a ponadto cale nowe okno - ja tylko potrzebowalem pop-up'a o dynamicznie okreslanych wymiarach. Ale za to ten kod przyda mi sie gdzie indziej snitch.gif

Dziekuje jeszcze raz za pomoc i pozdrawiam winksmiley.jpg
bogdan89
Cytat(erix @ 15.10.2006, 11:00:44 ) *
Kurde, czepiliście się tego javascript!

Komplikujecie sobie życie... Najlepsze są najprostsze i uniwersalne rozwiązania:
  1. <a href="obrazek.jpg" onclick="window.open(this.href)">test</a>


1. dodaj do tego wymiar okna zalezny od rozmiaru obrazka
2. dodaj style.css

... Twoje rozwiązanie jest może najprostsze, ale nie bardzo uniwersalne.
erix
Cytat
ale nie bardzo uniwersalne.

Jak to nie jest uniwersalne? Jest uzależnione tylko od wartości href; nie trzeba modyfikować parametrów funkcji.

Cytat
dodaj do tego wymiar okna zalezny od rozmiaru obrazka

Przejrzyj źródła thickboxa; tam jest metoda do zmiany rozmiaru okienka w zależności od wymiarów obrazka. Przeportuj do okienka i będzie grała gitara.

Cytat
dodaj style.css

Szczerze mówiąc, to co ma piernik do wiatraka?

Cytat
ja tylko potrzebowalem pop-up'a o dynamicznie okreslanych wymiarach. Ale za to ten kod przyda mi sie gdzie indziej


To jaki problem dopisać kolejne parametry?

  1. <a href="obrazek.jpg" onclick="window.open(this.href, 'okno'+Math.rand(), 'width=100,height=100,status=no')">test</a>

Math.rand sprawia, że będzie się otwierało za każdym razem inne okienko. Jeśli chcesz, żeby wszystko było w jednym, to wytnij to.
bogdan89
zwracam honor tongue.gif
NuLL
A moze http://www.huddletogether.com/projects/lightbox/ snitch.gif
lopik
NuLL miałem to ostatnio, super smile.gif
Tylko szkoda że nie jest zgodne z standardem validator sie burzy ;/
erix
Wyrzuć opacity ze stylów i powinno już być OK.

Jest jeszcze lżejszy Thickbox.
szajba7
Hmmm... Nie chcialbym naduzywac dobroci innych uzytkownikow, ale znow mam problem, mam nadzieje ze zostanie mi wybaczone.

Uzywam skryptu Bogdana89 - dziala super, slicznie i wogole, ale pojawia sie tez 'wieczne ladowanie strony'.
Obraz sie wyswietla, ale pasek stanu w przegladarce zatrzymuje sie po polowie i stoi, a dziarski komunikat informuje iz wciaz trwa pobieranie danych z mojego host'a. Czy Ktos wie jaka moze byc przyczyna takiego zachowania ?
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.