Onklick clos ich kapiers einfach nicht !!
Christian
- javascript
Hallo zusammen ich habe da ein problem was einfach nicht in mein Kopf will.
Ich habe folgende funktion:
<script type="text/javascript">
function FensterOeffnen (Adresse) {
MeinFenster = window.open(Adresse, "Bericht 01/08", "width=800,height=600,scrollbars=yes");
MeinFenster.focus();
}
</script>
und folgenden aufruf:
<a href="Bilder/Bericht01.jpg" onclick="FensterOeffnen(this.href); return false">...</a>
Nun möchte ich erstens das sich ein neues Fenster öffnet, und nicht das aktuelle "überschrieben" und zweitens möchte ich das wenn man dann auf das Bild wieder Klick sich das Fentster wieder schliest.
Ich weis das es der Befehl onklick (close) ist aber ich verstehe absolut nicht wohin damit das funtioniert????
Ich weis man könnte einen html Siete einbinden anstatt ein Bild aber dann müsste ich ja für jedes Bild einen eigene Seite erstellen und das will ich ja vermeiden.
Vielen Dank ich hoffe es kann mir wer helfen. Wäre super.
Nun möchte ich erstens das sich ein neues Fenster öffnet, und nicht das aktuelle "überschrieben" und zweitens möchte ich das wenn man dann auf das Bild wieder Klick sich das Fentster wieder schliest.
Frage am Anfang der Funktion ab, ob MeinFenster vom Typ object ist, wenn ja, rufe MeinFenster.close() auf:
if(typeof MeinFenster == 'object' && MeinFenster.close )
MeinFenster.close();
Ich weis das es der Befehl onklick (close) ist aber ich verstehe absolut nicht wohin damit das funtioniert????
Das mit dem Klick und Schluß geht nur inbdem du nicht das Bild, sondern HTML ins Fentser lädst. Also entweder ist Adresse eine HTML-Datei mit einem IMG-Element plus onclick-Handler oder du schreibst das Ganze zu Fuß in das Popup (window.open, window.write, window.close).
Ich weis man könnte einen html Siete einbinden anstatt ein Bild aber dann müsste ich ja für jedes Bild einen eigene Seite erstellen und das will ich ja vermeiden.
Gut, dann eben meine zweite Varianbte.
JJ
Nun möchte ich erstens das sich ein neues Fenster öffnet, und nicht das aktuelle "überschrieben" und zweitens möchte ich das wenn man dann auf das Bild wieder Klick sich das Fentster wieder schliest.
Frage am Anfang der Funktion ab, ob MeinFenster vom Typ object ist, wenn ja, rufe MeinFenster.close() auf:if(typeof MeinFenster == 'object' && MeinFenster.close )
MeinFenster.close();
Danke erst mal aber wenn ich die if funktion mit einbinde , ist ja auch logisch, dann schliest das fenster gleich wieder wenn er es geöffnet hat.
Und wenn ich die if abfrage vorher mache ist ja nichts zum abfragen dar?
Hi,
MeinFenster = window.open(Adresse, "Bericht 01/08", "width=800,height=600,scrollbars=yes");
Leerzeichen und Sonderzeichen wie / im Fensternamen dürften Probleme machen. Laß sie weg.
<a href="Bilder/Bericht01.jpg" onclick="FensterOeffnen(this.href); return false">...</a>
Nun möchte ich erstens das sich ein neues Fenster öffnet, und nicht das aktuelle "überschrieben"
Das passiert ob des Javascript-Fehlers, da das Fenster mit dem ungültigen Namen nicht geöffnet und daher nicht fokussiert werden kann.
und zweitens möchte ich das wenn man dann auf das Bild wieder Klick sich das Fentster wieder schliest.
Da Dein Fenster nur das Bild, aber keinerlei HTML enthält, gibt es keine Möglichkeit, das dazu nötige Javascript einzubinden, das auf einen Klick reagieren könnte.
Ich weis man könnte einen html Siete einbinden anstatt ein Bild aber dann müsste ich ja für jedes Bild einen eigene Seite erstellen
nö, ein Script, das als Parameter das anzuzeigende Bild mitbekommt und damit dann die passende Seite generiert, reicht.
cu,
Andreas
Hi,
MeinFenster = window.open(Adresse, "Bericht 01/08", "width=800,height=600,scrollbars=yes");
Leerzeichen und Sonderzeichen wie / im Fensternamen dürften Probleme machen. Laß sie weg.
<a href="Bilder/Bericht01.jpg" onclick="FensterOeffnen(this.href); return false">...</a>
Nun möchte ich erstens das sich ein neues Fenster öffnet, und nicht das aktuelle "überschrieben"Das passiert ob des Javascript-Fehlers, da das Fenster mit dem ungültigen Namen nicht geöffnet und daher nicht fokussiert werden kann.
und zweitens möchte ich das wenn man dann auf das Bild wieder Klick sich das Fentster wieder schliest.
Da Dein Fenster nur das Bild, aber keinerlei HTML enthält, gibt es keine Möglichkeit, das dazu nötige Javascript einzubinden, das auf einen Klick reagieren könnte.
Ich weis man könnte einen html Siete einbinden anstatt ein Bild aber dann müsste ich ja für jedes Bild einen eigene Seite erstellen
nö, ein Script, das als Parameter das anzuzeigende Bild mitbekommt und damit dann die passende Seite generiert, reicht.
cu,
Andreas
hallo Andreas danke erst mal.
Also das das pop up jetzt richtig aufgeht habe ich. Allerdings wie könnte ich das mit den script machen das das Bild in die HTMl datei gibt?
Habe java leider nicht so die ahnung.
Mahlzeit,
Also das das pop up jetzt richtig aufgeht habe ich. Allerdings wie könnte ich das mit den script machen das das Bild in die HTMl datei gibt?
Serverseitige Skriptsprache wie PHP.
Habe java leider nicht so die ahnung.
http://de.selfhtml.org/javascript/index.htm@title=Javascript hat mit Java nichts zu tun.
MfG,
EKKi
Hallo
Ich weis man könnte einen html Siete einbinden anstatt ein Bild aber dann müsste ich ja für jedes Bild einen eigene Seite erstellen
nö, ein Script, das als Parameter das anzuzeigende Bild mitbekommt und damit dann die passende Seite generiert, reicht.
Also das das pop up jetzt richtig aufgeht habe ich. Allerdings wie könnte ich das mit den script machen das das Bild in die HTMl datei gibt?
Zuerst würde der Link geändert. <a href="pfad/zum/skript.php?bild=Bericht01.jpg" onclick="FensterOeffnen(this.href); return false">...</a>
riefe ein PHP-Skript auf, welches den Bildnamen als Parameter bekäme, die Existenz des Bildes prüfte und eine HTML-Seite mit dem Bild auslieferte. Das Ganze würde sowohl im PopUp als auch auf einer normal aufgerufenen Seite funktionieren. Und in dieser könntest du mit JavaScript alles anstellen, was dir beliebt.
Falls dir PHP zur Verfügung stehen sollte, kannst du es (so jetzt hier niemand einen Fehler findet) mit folgendem Skript (oben genannte skript.php) probieren. Es setzt voraus, dass _alle_ Bilder, die mit dem Skript ausgegeben werden sollen, im _selben_ Verzeichnis liegen. Etwaige Einbindungen von CSS- oder JavaScript-Dateien etc. pp. wären zu ergänzen.
<?php
# Pfad zum Verzeichnis mit den anzuzeigenden Bildern
$bildpfad = "/Bilder/";
if (file_exists($bildpfad.$_GET["bild"])) # Eine Datei mit dem angegebenen Namen existiert im Pfad "$bildpfad"
{
# Die Flags der mit getimagesize ermittelbaren Grafikformate
$grafiktypen = range(1,4);
# Wir holen den Grafiktyp und den String mit den Ausmaßen der Grafik
$test_auf_grafik = getimagesize($bildpfad.$_GET["bild"]);
if (in_array($test_auf_grafik[2],$grafiktypen))
{
# Der Dateityp ist eine Grafik eines der Formate GIF, JPEG, PNG, SWF
# Wir bauen das HTML-Element <img> zusammen
$string = "<img src=\"".$bildpfad.$_GET["bild"]."\" ".$test_auf_grafik[3]." alt=\"\">";
$titel = $_GET["bild"];
}
else
{
# Der Dateityp ist keines der gültigen Grafikformate
$string = "<p>Die angegebene Datei ist kein gültiges Bild.</p>";
}
}
else
{
# Die angegebene Datei existiert nicht
$string = "<p>Die angegebene Datei existiert nicht.</p>";
}
if (!isset($titel))
{
# $titel kann nur existieren, wenn es auch das Bild gibt (siehe Zeile 16).
# Andernfalls ist ein Fehler aufgetreten, was wir jetzt
# auch im Titel der Seite bestätigen werden.
$titel = "Fehler";
}
# Hintendran die HTML-Ausgabe, die auch über ein Template erfolgen könnte
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";
echo "<html lang=\"de\">\n"
echo "<head>\n";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">\n";
echo "<title>Galerie: ".$titel."</title>\n";
echo "</head>\n"
echo "<body>\n";
echo "<h1>Bildergalerie</h1>\n";
echo "<!-- Das Folgende könnte man auch in einem Absatz regeln. -->";
echo "<h2>".$titel."</h2>\n";
echo $string."\n";
echo "</body>\n"
echo "</html>";
?>
Tschö, Auge