PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gallerie mit JS Popup


DominikJ
23.08.2006, 18:57:04
Hi,

ich habe ein Problem beim richtigen verlinken von einem Javascript Popup, bzw ein JS fehler...
Ich weiß schon das ich hier nicht so sehr richtig bin, aber die Community hier kommt mir sehr hilfreich vor.
Also:

funktionen:

//Tabelle erzeugen
function gal_makeTable($dir) {
echo '<table>';
$inRow = "3";
$d = dir($dir);
while ($eintrag = $d->read()) {
if ($eintrag != "." && $eintrag != "..") {
$inhalt[] = $eintrag;
if (sizeof($inhalt) == $inRow) {
gal_makeRow($dir,$inhalt);
unset($inhalt);
}
}
}
if (sizeof($inhalt) > "0") {
gal_makeRow($dir,$inhalt);
}
echo '</table>';
}

//Neue Zeile erstellen

function gal_makeRow($dir,$inhalt) {
echo '<tr>';
foreach ($inhalt as $eintrag) {
$all = $dir.$eintrag;
$title = 'Ich bin ein Titel!!!';
if (is_dir($all)) {
echo '<td><img src="'.$dir.'/gal/ordner.gif"></td>';
}
else
{
$size = getimagesize($all);
echo '
<td><a href="javascript:ViewImage('.$all.','.$size[0].','.$size[1].',\''.$title.'\');" onClick="ViewImage('.$all.','.$size[0].','.$size[1].',\''.$title.'\');">
<img src="thumb.php?image='.$all.'&x=300" alt="'.$entry.'" onClick="javascript:ViewImage('.$all.','.$size[0].','.$size[1].',\''.$title.'\');" />
</a></td>
';
}
}
echo '</tr>';
}

JS

//Popup Funktion
function ViewImage(bildurl,b,h,bildtitel)
{
var eigenschaften,sbreite,shoehe,fenster,b,h;

// stellt die Bildschirmabmessungen fest
var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var ns4 = (document.layers);

if(ns6||ns4) {
sbreite = innerWidth;
shoehe = innerHeight;
}
else if(ie4) {
sbreite = document.body.clientWidth;
shoehe = document.body.clientHeight;
}

x = (sbreite-b)/2;
y = (shoehe-h)/2;

eigenschaften="left="+x+",top="+y+",screenX="+x+",screenY="+y+",width="+b+",height="+h+"";

fenster=window.open("","",eigenschaften);
fenster.focus();
fenster.document.open();
with (fenster) {
document.write('<html><head>');
document.write('<scr' + 'ipt type="text/javascr' + 'ipt" language="JavaScr' + 'ipt">');
document.write("function click() { window.close(); } "); // bei click schliessen
document.write("document.onmousedown=click ");
document.write('</scr' + 'ipt>');
document.write('<title>'+ bildtitel +'</title></head>');
document.write('<' + 'body onblur="window.close();" ');// bei Focusverlust schliessen
document.write('marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">');
document.write('<center>');
document.write('<img src="'+ bildurl +'"border="0">');
document.write('</center>');
document.write('</body></html>');
fenster.document.close();
}
}


Irgendwie geht das PopUp nicht auf, muss irgendwie an der Verlinkung des Bildes im makeRow liegen. Ich habe da einfach überall das reingeschrieben, um zui testen obs geht, ging nicht!
Die Bilder werden schon richtig angezeigt, nur PopUp funktioniert leider nicht.
Kann mir da wer behilflich sein?

Andes
23.08.2006, 19:48:06
Also bei mir funktioniert das Script. Vielleicht wird das Fenster von einem Popupblocker geblockt.
Du brauchst übrigens nur einmal die Funktion aufrufen. Also reicht es, wenn du sie über <a href="javascript:function(...)"... oder über onclick im a-Tag aufrufst. Dein Funktionsaufruf über onclick im img-Tag ist etwas falsch. Das 'javascript:' gehört dort nicht hin.

DominikJ
23.08.2006, 22:20:34
Das war die frage :)
Mal eben testen...

Ok, funzt musste nur nen par Hockommas setzen :)