Christian: Onklick clos ich kapiers einfach nicht !!

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.

  1. 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

    1. 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?

  2. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. 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.

      1. 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

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. 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

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.2
  3. Lieber Christian,

    <a href="Bilder/Bericht01.jpg" onclick="FensterOeffnen(this.href); return false">...</a>

    warum nicht einfacher?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)