JS und ASP und Fehler im NS
Matthias
- programmiertechnik
Hallo zusammen,
für die Darstellung von Projektergebnissen habe ich eine Datenbank in MS-Access angelegt. Diese beinhaltet drei Felder (projekte_bild1 ... 3). Darin können die Bildnamen eingegeben werden (test1.jpg, test2.jpg usw.), die mit der Projektbeschreibung gezeigt werden sollen. Außerdem gibt es ein Feld projekte_bilderordner, in dem der Ordnername angegeben wird, in dem die Bilder liegen.
Auf die Bilder, die angezeigt werden, kann geklickt werden, dann öffnet sich ein neues Fenster, dass das ausgewählte Bild als Hintergrund hat. Damit ich nicht zu viele Bilder erstellen und verwalten muss, haben alle Bilder die Größe 320x240 bzw. 240x320 Pixel. In der Übersicht werden diese jedoch nur mit 120x90 bzw. 120x160 Pixeln Größe dargestellt (Tabellenspalte hat nur 120 Pixel Breite).
Die Bilder sollen ab und zu ausgetauscht werden, das will der Kunde selbst machen. Da ich also nicht weiß, ob das Bild, das anzeigt werden soll, hoch- oder querformatig ist, habe ich eine Kombination aus ASP und JS geschrieben. Mit JS ermittle ich die Ausrichtung des Bildes. Anhand dieser Ausrichtung soll dann mit document.writeln der passende HTML-Code geschrieben werden.
Im IE passt das alles auch, nur im Netscape habe ich das Phänomen, dass die Bilder erst nach mehrmaligem Laden der Seite richtig dargestellt werden. Ein Bild im Querformat wird zunächst einmal als Hochkantbild dargestellt. Erst nach mehrmaligem Laden stimmt dann die Ausrichtung.
Ich habe keinen Syntaxfehler mehr entdeckt, wahrscheinlich stimmt aber prinzipiell was nicht mit meiner Idee.
Nur was?
Danke für Hinweise
Matthias
------
<script language="JavaScript1.2">
<!--
eigenschaften = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,";
e_q = eigenschaften + "width=320,height=240";
e_h = eigenschaften + "width=240,height=320";
<%
For z1 = 1 To 3
ordner = rs("projekte_bilderordner")
bild = "projekte_bild" & z1 %>
projektbild<% = z1 %> = new Image();
projektbild<% = z1 %>.src = "bilder/projekte/<% = rs("projekte_bilderordner") %>/<% = rs(bild) %>";
quelle<% = z1 %> = projektbild<% = z1 %>.src;
breite<% = z1 %> = projektbild<% = z1 %>.width;
hoehe<% = z1 %> = projektbild<% = z1 %>.height;
alert("<% = z1 %>. bild quelle: " + quelle<% = z1 %>);
alert("<% = z1 %>. bild breite: " + breite<% = z1 %>);
alert("<% = z1 %>. bild höhe: " + hoehe<% = z1 %>);
if (breite<% = z1 %> > hoehe<% = z1 %>) {
// document.write("quer<br>breite: " + breite + "<br>höhe: " + hoehe + "<br>");
document.writeln("<a href='#' onClick=window.open('bild.asp?ordner=<% = ordner %>&hgr=<% = rs(bild) %>','vorschau',e_q)><img src='bilder/projekte/<% = rs("projekte_bilderordner") %>/<% = rs(bild) %>' width='120' height='90' border='0'></a><br><br>");
} else {
// document.write("hoch<br>breite: " + breite + "<br>höhe: " + hoehe + "<br>");
document.writeln("<a href='#' onClick=window.open('bild.asp?ordner=<% = ordner %>&hgr=<% = rs(bild) %>','vorschau',e_h)><img src='bilder/projekte/<% = rs("projekte_bilderordner") %>/<% = rs(bild) %>' width='120' height='160' border='0'></a><br><br>");
}
<%
Next %>
//-->
</script>
Moin!
Im IE passt das alles auch, nur im Netscape habe ich das Phänomen, dass die Bilder erst nach mehrmaligem Laden der Seite richtig dargestellt werden. Ein Bild im Querformat wird zunächst einmal als Hochkantbild dargestellt. Erst nach mehrmaligem Laden stimmt dann die Ausrichtung.
Ich habe keinen Syntaxfehler mehr entdeckt, wahrscheinlich stimmt aber prinzipiell was nicht mit meiner Idee.
Ich würde auf den Teil der Idee tippen, bei der du Javascript einsetzen willst, um etwas zu erledigen, was der Server auch kann - und sogar noch kompatibel mit Javascriptlosen Browsern!
Verlasse dich nicht auf Browser. Finde serverseitig heraus, ob das Bild hochkant oder querkant ist (laß notfalls den Benutzer entscheiden und speichere das in der Datenbank ab - bei ASP weiß ich nicht, ob man auf einfache Weise die Auflösung eines Bildes herausfinden kann - mit PHP wäre das kein Problem ;) ). Und wenn du das weißt, generiere entsprechenden HTML-Code.
- Sven Rautenberg
Hallo,
Verlasse dich nicht auf Browser. Finde serverseitig heraus, ob das Bild hochkant oder querkant ist (laß notfalls den Benutzer entscheiden und speichere das in der Datenbank ab - bei ASP weiß ich nicht, ob man auf einfache Weise die Auflösung eines Bildes herausfinden kann - mit PHP wäre das kein Problem ;) ). Und wenn du das weißt, generiere entsprechenden HTML-Code.
Zuvorgekommen :)
Noch ergaenzend - in ASP geht sowas zB mit dem FileSystemObject (FSO).
Siehe zB http://www.4guysfromrolla.com/webtech/050300-1.shtml (englisch, aber google mal nach deutschsprachigen Seiten).
Gruss, Mel
Hallo Melanie,
vielen Dank für Deinen HInweis. Das mit dem FSO schaue ich mir mal genauer an, ich denke, das ist das, was mir weiterhelfen kann.
Gruß
Matthias
Hallo Sven,
Danke für Deine Hinweise. In einem ASP-Forum habe ich auch schon danach gefragt, aber dort auch keine zufriedenstellende Antwort gefunden.
Der Vorschlag von Mel mit dem FSO scheint erfolgversprechend zu sein.
Matthias