Hallo,

Ik heb ergens een script gevonden dat een heel mooi fotoboek vormt. Dit werkt perfect in Internet explorer, maar zodra ik de pagina in firefox open gaat het mis. als je op een plaatje klikt gebeurt er niks.

Wat doe ik fout? heeft het iets te maken met window.open in laatzien?

hier mijn script:

<?php
//LET OP!!! Hier moet je de directory invullen waar je foto's staan
//vergeet niet de "/" op het einde
//deze directory gaat uit van het pad waar je file staat. Ook geen
//leading "/" gebruiken dus.

$dir = 'images/';
$dir2 = 'klein/';

//inhoud van de directory ophalen
$handle = opendir($dir);
while ($file = readdir($handle))
{
if($file == '.' || $file == '..')
continue;
else
$result_array[]=$file;
}
closedir($handle);
?>

<center>
Wacht tot alle fototjes geladen zijn....<br>
</center>
<script language="JavaScript">
<!--
function laatZien(fotonr, hoogte, breedte, src)
{
foto = window.open('','','menubar=no,toolbar=no');
foto.resizeTo(breedte,hoogte);
foto.document.write("<html><head><title>Foto - " + fotonr + "</title></head><body leftmargin='0' topmargin='0'>");
foto.document.write("<center><img src=" + src + fotonr + "><center><br>");
foto.document.write("<center><font face='Arial, Helvetica, sans-serif' size='2'>.::<a href='JavaScript:window.close();'> Sluit venster </a>::.</font></center>");
foto.document.write("</body></html>");
}
!-->
</script>
</head>

<style>
body
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
background-color: #FFFFFF
}
span
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #CC6633
}
a:link { color: #000000; font-size: 12px }
a:visited { color: #31928C; font-size: 12px }
a:active { color: #CCFFCC; font-size: 12px }
a:hover { color: #CC3333; font-size: 12px }
</style>

<body>
<?php
//aantal rijen en kolommen in stellen. De dir waar je je foto's moet in zetten heet "foto". Deze index.php moet
//één directory hoger staan :-)
//Wil je dat wijzigen, dan moet je niet vergeten het stukje JavaScript hier boven ook te wijzigen.
//ik had de tabellen ook vanaf hier willen configgen, maar dat zijn slechts 3 regels dus dat
//doe je zelf maar :-P
$rows = 4;
$cols = 5;
//pagina nummer ophalen, indien geen pagina nummer op 0 zetten
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 0;
}
//totaal aantal foto's, om het aantal pagina's uit te rekenen
$num_pics = count($result_array);
//wat vars en andere rommel om de juiste pagina's en array's door te lopen
$cells = $rows * $cols;
$pages = ceil($num_pics / ($rows * $cols));
$num_pages = $pages - 1;
$output = array();
$slices = array();
$push = 0;
$showpage = $page + 1;

//array vullen met waarden voor de slice om afbeeldingen per pagina weer te geven
for($k=0;$k<$pages;$k++)
{
array_push($slices, $push);
$push = $push + $cells;
}

//lusje om te kijken op welke pagina we zijn en vervolgens de goede set afbeeldingen uit $result_array halen

for($k=0;$k<$pages;$k++)
{
if($page == key($slices))
{
$output = array_slice($result_array, current($slices), $cells);
}
next($slices);
}
reset($output);

//afbeelden van afbeeldingen
print "<center>\n<table width='*' border='1' bordercolor='#000000' cellspacing='0' cellpadding='2'>\n";
for($i=0;$i<$rows;$i++)
{
print "\t<tr>\n";
for($j=0;$j<$cols;$j++)
{
if(current($output) != false)
{
$pic = current($output);
$size = getimagesize($dir.$pic);
$height_button = $size[1] + 70;
$value = current($output);
print "\t\t<td width='100' height='100' align=center>\n\t\t\t<a href=JavaScript:laatZien('$value',$height_button,$size[0],'$dir');>\n\t\t\t\t<img width='100' height='100' border='0' src='$dir2$value'>\n\t\t\t</a>\n\t\t</td>\n\n";
next($output);
}
else
{
print "\t\t<td width='100' height='100' align='center'>&nbsp;</td>\n";
}
}
print "\t</tr>\n";
}

//hier worden de prev en next knopjes gemaakt.
$ref = $_SERVER['PHP_SELF'];
print "</table>\n";
if($num_pages == '0')
{
print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";
print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}
elseif(($page == '0')||($page == ''))
{
// geen previous knopje, begin pagina index.php?page=0
$next = $page + 1;
print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";
$page_link = 1;
for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}
print "<span> [ </span>";
print "<a href='$ref?page=$next'>volgende</a>";
print "<span> ]</span>";
}
elseif($page == $num_pages)
{
// geen next knopje, $pages = maximum
$prev = $page - 1;
print "<span>[ </span>";
print "<a href='$ref?page=$prev'>vorige</a>";
print "<span> ] </span>";
$page_link = 1;
for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}
print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}
else
{

// de rest, pagina's in het midden, 2 knopjes
$next = $page + 1;
$prev = $page - 1;
print "<span>[ </span>";
print "<a href='$ref?page=$prev'>vorige</a>";
print "<span> ] </span>";
$page_link = 1;
for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}
print "<span> [ </span>";
print "<a href='$ref?page=$next'>volgende</a>";
print "<span> ]</span>";
}
//pagina nummer afbeelden, dit kan je er nog uit slopen of ergens anders neerkwakken
print "<br><br>";
print "Pagina: $showpage van $pages";
?>
</center>
</body>
</html>
Hoi Bas,

ik zou nog een check inbouwen om te zien of er al een popup geopend is. Als je het popupwindow niet sluit voordat je op een nieuwe thumbnail klikt, dan heb je twee popups, en drie, en vier, enz ...

Ook laden je foto's nogal traag. Heb je ze wel voorbewerkt voor internet? Dus geen 300 DPI en zo, beetje gunstige JPEG compressieverhouding, dat soort dingen?
In principe is het wel verstandig om die commentaar-tags te laten staan, maar ik vermoed dat het probleem lag in de afsluitende tag. Die was !--> in plaats van --> en aangezien dat niet conform de standaard is, zal Firefox zich anders hebben gedragen dan was bedoeld.
afsluitende tag is ook --> en als je daar een ! voor zet dan wordt die ook uitgeschakeld, maar goed.

het werkt nu.

jan, ik heb de foto's wel gedownsized, maar die server is niet bar snel.

gaat om het idee,.........

groet bas
Bas schreef op 24.10.2005 16:24
jan, ik heb de foto's wel gedownsized, maar die server is niet bar snel.

gaat om het idee
groet bas


Okee, veel succes verder!

Reageren