problem z oknem popup - Wersja do druku
+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: problem z oknem popup (/thread-problem-z-oknem-popup)
|
problem z oknem popup - Jozeph - 06-08-2010
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!
RE: problem z oknem popup - Kartofelek - 06-08-2010
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ć
RE: problem z oknem popup - Jozeph - 06-08-2010
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 narazie zostawię to tak jak jest i wezme się za kurs, do którego podałeś link bo po co odrazu się żucać na głęboką wodę... Pozdrawiam!
RE: problem z oknem popup - Kartofelek - 06-08-2010
if (popup_window && !popup_window.closed) {
popup_window.resizeTo (width, height);
}
|