Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
problem z oknem popup
#1
Witam! Piszę sobie skrypt php z użycie javascript do wyskakującego okna ze zdjęciem. Jak pierwszy raz odpale skrypt i klikne w odnośnik do zdjęcia to otworzy się nowe okno i zdjęcie poprawnie się wyświetli. Później, gdy je zamknę i spróbuje odpalić jeszcze raz zdjęcie bez przeładowywania strony to wychodzi błąd:

Kod:
JavaScript - http://localhost/upload_image1.php

Uncaught exception: TypeError: 'window.popup_window.resizeTo' is not a function
Error thrown at line 7, column 0 in create_window(image, width, height):
    window.popup_window.resizeTo (width, height);
called from line 1, column 0 in program code:
    create_window('grafika_mini2.jpg',204,153)

Skrypt główny wygląda tak:

Kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="contenet-type" content="text/html: charset=iso-8859-2" />
<!--<meta http-equiv="Refresh" content="5; url=http://www.google.pl" /> !-->
<title>Galeria</title>
<link rel="Shortcut icon" href="Antares_Icon_29.ico">
<link rel="stylesheet" type="text/css" href="style.css">

<script language="javascript">
function create_window (image, width, height) {
width = width + 25;
height = height + 50;

if (window.popup_window && !window.popup_window.closed) {
window.popup_window.resizeTo (width, height);
}

var window_specs = "location=no, scrollbars=no, menubars=no, toolbars=no, resizable=yes, left=0, top=0, width=" +width+ ", height=" +height;

var url = "upload_imagea.php?image=" +image;

popup_window = window.open(url, "picturewindow", window_specs);
popup_window.focus();
}
</script>
</head>
<body>

<table align="center" cellspacing="5" cellpaddnig="5" border="1">
<tr>
<td align="center">Nazwa obrazu</td>
<td align="center">Rozmiar obrazu</td>
</tr>
<?php

$dir = "uploads";

$files = scandir($dir);

foreach ($files as $image) {

if (substr($image, 0, 1) != '.') {
$image_size = getimagesize("$dir/$image");

$file_size = round ((filesize("$dir/$image")) / 1024) . "kb";

echo "<tr>
<td><a href=\"javascript:create_window('$image',$image_size[0],$image_size[1])\">$image</a></td>
<td>$file_size</td>
</tr>";
}
}
?>
</table>
</body>
</html>


a obsługujący tak:


Kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="contenet-type" content="text/html: charset=iso-8859-2" />
<!--<meta http-equiv="Refresh" content="5; url=http://www.google.pl" /> !-->
<title>Galeria</title>
<link rel="Shortcut icon" href="Antares_Icon_29.ico">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<?php
$okay = false;
if(isset($_GET['image'])) {

$ext = substr($_GET['image'],-4);
if ((strtolower($ext) == '.jpg') OR (strtolower($ext) == 'jpeg') OR (strtolower($ext) == '.gif')) {

if ($image = @getimagesize ('uploads/' . $_GET['image'])) {
echo "<img src=\"uploads/{$_GET['image']}\"$image[3] border=\"2\" />";
$okay = true;

}

}
}
if (!$okay){
echo " do skryptu nalezy przeniesc prawdziwa nazwe obrazu!";
}
?>
<br />
<div align="center"><a href="javascript:self.close();">Zamknij okno</a></div>
</body>
</html>

Pozdrawiam!
Odpowiedz
#2
window -> glowne okno przegladarki
popup_window -> twoje nowe oddzielne okno
window.popup_window - twoje nowe okno w głównym oknie przeglaraki? - źle.

więc wszystkie window.popup_window zamien na popup_window

http://doman.art.pl/kursjs/kurs/okna.html

Za pierwszym razem "dziala", dlatego ze ze dzięki IF.... przeskakuje tą błędną składnię.

Swoją drogą to ZŁA technika (szczególnie ten focus na okienku - który zresztą mało kiedy zadziała).
Nie lepiej po prostu użyć lightbox2 (google: lightbox2)? I ladniejsze i bezpieczniejsze, bo przeglądarki mają już przecież blokady wyskakujących okien, więc może ci się nic nie pojawiać Wink
Odpowiedz
#3
hmm kuleje jeszcze w js bo narazie ucze się php... zmieniłem wszystko tak jak mówiłeś i teraz już nic się nie otwiera Tongue narazie zostawię to tak jak jest i wezme się za kurs, do którego podałeś link Smile bo po co odrazu się żucać na głęboką wodę... Pozdrawiam!
Odpowiedz
#4
if (popup_window && !popup_window.closed) {
popup_window.resizeTo (width, height);
}
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  CSS Obrazek popup Drakhtul 12 8,177 09-12-2012, 02:36
Ostatni post: andrzejhi
  Problem z oknem galeri VenonX 4 3,094 05-06-2012, 19:17
Ostatni post: nst
  [CSS/HTML] jak zrobić zdjęcie/popup które po kliknięciu znika elpeak 2 3,087 09-12-2011, 18:22
Ostatni post: Small Hope
  Podpinanie popup pod input mrsensi 3 3,144 29-09-2011, 03:11
Ostatni post: Kartofelek
  [CSS/JS] Box do logowania jako popup refbackbank 1 3,152 29-04-2010, 02:44
Ostatni post: R_Rafalsky

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl