[JS] Nowe okno

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
qp3k
Posty: 18
Rejestracja: pt lut 25, 2005 2:46 pm
Lokalizacja: Poznań
Kontakt:

[JS] Nowe okno

Post autor: qp3k »

Witam!
Potrzebowalem skryptu, ktory otwieralby po kliknieciu na thumnail w galerii obrazek w oryginalnych rozmiarach. Wymyslilem cos takiego:

Kod: Zaznacz cały

// Otwieranie setów
<script language="javascript">
function otworz(adres) {
var winl = (screen.width-800)/2;
var wint = (screen.height-600)/2;
if (winl < 0) winl = 0;
if (wint < 0) wint = 0;
var settings = 'height=' + 600 + ',';
    settings += 'width=' + 800 + ',';
        settings += 'top=' + wint + ',';
        settings += 'left=' + winl + ',';
        settings += 'menubar=no,';
                settings += 'toolbar=no,';
        settings += 'location=no,';
        settings += 'scrollbars=yes,';
        settings += 'resizable=yes,';
        settings += 'status=no';

okno = window.open('about:blank', '', settings);
okno.window.focus();
okno.document.write('(...)');
}

//-->
</script>
Skrypt ten otwiera pusty dokument w oknie o okreslonych wymiarach, na srodku monitora - zreszta widzicie. Potem wpisuje do niego okreslona tresc.

Dzialal bez problemu u mnie na localhost (tylko pod IE), ale na innym serwerze pojawia sie blad " 'okno.window' jest pusty lub nie jest obiektem" 8O

Dwa krotkie pytania:
1) o co chodzi? jak usunac blad?
2) co zmienic, zeby skrypt dzialal nie tylko pod IE?

Z gory dzieki!
--------------------------------------------------------------------------------
Zdrówka, Qp3k
Calif
Nowy
Nowy
Posty: 91
Rejestracja: sob lut 26, 2005 3:03 pm
Lokalizacja: Kaplica

Re: [JS] Nowe okno

Post autor: Calif »

Myślę, że to jest to czego szukasz. sam JS nie zajmuje się, ale ten skrypt
znalazłem w sieci i z drobnymi poprawkami (Validator W3C) zastosowałem
w swojej galerii zdjęć.

W <head> umieszczasz to:

Kod: Zaznacz cały

<script type="text/JavaScript">
<!--
function pokazOkno(zdjecieNazwa,zdjecieSzerokosc,zdjecieWyskosc,tytul,pozycjaLewo,pozycjaGora) {
  noweOkno = window.open("","noweOkno","width="+zdjecieSzerokosc+",height="+zdjecieWyskosc+",left="+pozycjaLewo+",top="+pozycjaGora);
  noweOkno.document.open();
  noweOkno.document.write('<html><title>'+tytul+'<\/title><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" 	marginheight="0" marginwidth="0" onClick="self.close()" style="cursor:hand">');
  noweOkno.document.write('<img src='+zdjecieNazwa+' width='+zdjecieSzerokosc+' height='+zdjecieWyskosc+' alt='+tytul+'>');
  noweOkno.document.write('<\/body><\/html>');
  noweOkno.document.close();
  noweOkno.focus();
}
//-->
</script>
a w <body> sprawa tak wyglada:

Kod: Zaznacz cały

<a href="javascript:pokazOkno('zdjecieNazwa','zdjecieSzerokosc','zdjecieWyskosc','tytul','pozycjaLewo','pozycjaPrawo');">
		<img style="width:zdjecieSzerokosc;height:zdjecieWysokosc;border:0" src="zdjecieNazwa" alt="tytul"></a>
Jak pisalem skrypt nie jest moj i go nie napisalem jedyna moja ingerencja
to poprawienie go by byl zgodny z wytycznymi W3C.
Działa pod IE, Firefox'em, Opera. Jesli tytul bedzie wieloczlonowy zapisz go
tak : Nazwa_Mojego_Obrazka. Niektore przegladarki nie akceptuja spacji :)
qp3k
Posty: 18
Rejestracja: pt lut 25, 2005 2:46 pm
Lokalizacja: Poznań
Kontakt:

Re: [JS] Nowe okno

Post autor: qp3k »

Wynika ze tego, ze powinienem byl uzyc jeszcze polecen "document.open" oraz "document.close", ktorych w moim skrypcie zabraklo, a takze usuna "window" z "okno.window.focus();" oraz nie podawac zadnego urla przy window.open.... Zrobilem to wszystko. Co prawda komunikat o bledzie nie wyswietla sie, ale pop-up rowniez nie wyskakuje. Moze to wina moich przegladarek?
ODPOWIEDZ