Linus: Fenstergrößenproblem beim Öffnen von Bildern

Hallo allerseits.

Ich habe das Problem, dass ich verschiedene Bilder (mit versch. Größen) in ein und dem selben Fenster öffen möchte.
Dazu benutze ich momentan folgendes:

Bild01
<a href="#" onclick="window.open('img/big/bild01.jpg','Fenster','width=320,height=420,resizable=yes,scrollbars=no,left=0,top=0');">
Bild02
<a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">

Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.
Die width und height Befehle des zweiten Scripts haben sozusagen keine Wirkung.
Wie kann ich diesen Fehler beheben?

Ich bin für Antworten äußerst dankbar..
Gruß

Linus

  1. Sup!

    Du könntest nicht beide Fenster Fenster nennen.

    Gruesse,

    Bio

    --
    Man kann aus Ackergaeulen keine Rennpferde machen
    1. Hallo, Bio,

      Du könntest nicht beide Fenster Fenster nennen.

      ja, grossartig, ganz grossartig. Erst nach einigen Wochen merkt man was man an Dir hat. Es war jetzt vielleicht nicht gleich der Brueller des Jahrzehnts, aber dennoch, man freut sich; man freut sich mal wieder etwas Sinnvolles und Nahrhaftes aufnehmen zu duerfen.

      Also bitte nicht noch einmal unabgemeldet (?!) fuer einige Wochen verschwinden. Das war nicht nett. (Ich hoffe allerdings, dass es sich gelohnt hat ;-)

      Gruss,
      Ludger

      --
      "Machts der Gerd nicht, machts der Franz."
    2. Sup!

      Du könntest nicht beide Fenster Fenster nennen.

      Gruesse,

      Bio

      Aber dann würde ich doch nicht beide Bilder im selben Fenster öffnen und hätte zwei offene Fenster, was ich verhindern möchte.

      Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?

      cu, Mario

      Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
      In SelfHTML ist dazu kein treffendes Beispiel..

      1. Hallo,

        Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
        In SelfHTML ist dazu kein treffendes Beispiel..

        Doch. Sicherlich gibt&#39;s dazu ein passendes Beispiel. Da ist es: http://de.selfhtml.org/javascript/objekte/window.htm#close.

        Gruß aus http://www.bonn.de/
        Sven

        --
        Do it yourSELF &#39;cause SELFmade is bestmade.
        Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
        Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
        Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
        1. Hallo,

          Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
          In SelfHTML ist dazu kein treffendes Beispiel..

          Doch. Sicherlich gibt&#39;s dazu ein passendes Beispiel. Da ist es: http://de.selfhtml.org/javascript/objekte/window.htm#close.

          Gruß aus http://www.bonn.de/
          Sven

          das kenne ich.. aber ich kann damit nichts anfangen. Variablen deklaration-

          Gruß
          Linus

  2. Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?

    cu, Mario

    1. Hallo,

      Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?

      Das würde sicherlich zu Problemen führen, wenn noch gar kein Zweitfenster geöffnet wurde.

      Im Übrigen sehe ich nicht ein, warum man für einfache Bildvergrößerungen neue Fenster bemühen muss. Jeder normale Browser hat einen Back-Button.

      Gruß aus http://www.bonn.de/
      Sven

      --
      Do it yourSELF &#39;cause SELFmade is bestmade.
      Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
      Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
      Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
  3. Hallo, Linus!

    <a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">
    Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.

    <a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=no,left=0,top=0');win.resizeTo(350,620);">

    freundl. Grüsse aus Berlin, Raik

    1. Hallo,

      <a href="#" onclick="win=window.open(&#39;img/big/bild02.jpg&#39;,&#39;Fenster&#39;,resizable=yes,scrollbars=no,left=0,top=0&#39;);win.resizeTo(350,620);">

      Wenn es schon resizable ist, was ja durchaus sinnvoll ist, sollte man auch scrollen können, um - bei kleiner gemachtem Fenster (z. B. weil die Auflösung kleiner ist als die Fenstergröße) - auch noch das ganze Bild betrachten zu können.

      Desweiteren würde ich das Fenster nicht in der linken oberen Bildschirmecke positionieren, da es auch Leute gibt, die da Taskleisten etc. haben.

      Also:

      <a href="#" onclick="win=window.open(&#39;img/big/bild02.jpg&#39;,&#39;Fenster&#39;,resizable=yes,scrollbars=yes&#39;);win.resizeTo(350,620);return false">

      Gruß aus http://www.bonn.de/
      Sven

      --
      Do it yourSELF &#39;cause SELFmade is bestmade.
      Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
      Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
      Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
      1. Wenn es schon resizable ist, was ja durchaus sinnvoll ist, sollte man auch scrollen können, um - bei kleiner gemachtem Fenster (z. B. weil die Auflösung kleiner ist als die Fenstergröße) - auch noch das ganze Bild betrachten zu können.

        Desweiteren würde ich das Fenster nicht in der linken oberen Bildschirmecke positionieren, da es auch Leute gibt, die da Taskleisten etc. haben.

        ok danke für die Hinweise

        Also:

        <a href="#" onclick="win=window.open(&#39;img/big/bild02.jpg&#39;,&#39;Fenster&#39;,resizable=yes,scrollbars=yes&#39;);win.resizeTo(350,620);return false">

        Wenn ich das einfüge sagt mein Editor "Nicht abgeschlossene Zeichenfolgenkonstante" -- was hat das zu bedeuten?

        1. Hallo,

          <a href="#" onclick="win=window.open(&#39;img/big/bild02.jpg&#39;,&#39;Fenster&#39;,resizable=yes,scrollbars=yes&#39;);win.resizeTo(350,620);return false">

          Wenn ich das einfüge sagt mein Editor "Nicht abgeschlossene Zeichenfolgenkonstante" -- was hat das zu bedeuten?

          Argl...

          Das liegt an der Rechtschreibprüfung dieses Forums.

          Ersetze in obigem Quellcode alle &#39; durch ein Hochkomma ' . Dann sollte das ganze laufen.

          Gruß aus http://www.bonn.de/
          Sven

          --
          Do it yourSELF &#39;cause SELFmade is bestmade.
          Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
          Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
          Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
          1. Argl...

            Das liegt an der Rechtschreibprüfung dieses Forums.

            Ersetze in obigem Quellcode alle &#39; durch ein Hochkomma ' . Dann sollte das ganze laufen.

            Nein ich habe das ganze schon mit den Hochkommas gemacht.. ein wenig Ahnung hab ich schon ;)

            Wofür steht das return false? Mit oder ohne.. Er zeigt immer wieder die Fehlermeldung.

            1. Hallo,

              Ersetze in obigem Quellcode alle &#39; durch ein Hochkomma &#39; . Dann sollte das ganze laufen.

              Nein ich habe das ganze schon mit den Hochkommas gemacht.. ein wenig Ahnung hab ich schon ;)

              ;-)

              Wofür steht das return false? Mit oder ohne.. Er zeigt immer wieder die Fehlermeldung.

              Das return false sorgt dafür, dass der Link nicht mehr ausgeführt wird, wenn das JavaScript gelaufen ist.

              Ich habe mir das Codefragment nochmal angesehen und ein paar Fehler ausgemerzt. So sollte es richtig laufen:

              <a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster','resizable=yes,scrollbars=yes');win.resizeTo(350,620);return false;">

              Gruß aus http://www.bonn.de/
              Sven

              --
              Do it yourSELF &#39;cause SELFmade is bestmade.
              Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
              Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
              Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
  4. Hallo allerseits.

    Ich habe das Problem, dass ich verschiedene Bilder (mit versch. Größen) in ein und dem selben Fenster öffen möchte.
    Dazu benutze ich momentan folgendes:

    Bild01
    <a href="#" onclick="window.open('img/big/bild01.jpg','Fenster','width=320,height=420,resizable=yes,scrollbars=no,left=0,top=0');">
    Bild02
    <a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">

    Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.
    Die width und height Befehle des zweiten Scripts haben sozusagen keine Wirkung.
    Wie kann ich diesen Fehler beheben?

    Ich bin für Antworten äußerst dankbar..
    Gruß

    Linus

    Hallo,

    ich warte gerade auf eine Antwort auf meine Frage - daher anbei ein kurzes Codebeispiel für eine ähnliche JS-Funktion - muß etwas verändert werden:

    // Test ob Hilfe-Fenster bereits geoeffnet ist
            if (! window.help) {
                // Hilfe-Fenster unbekannt
                windowExists = 0;
                }
            else if (help.closed == true) {
                // Hilfe-Fenster bekannt, jedoch geschlossen
                windowExists = 0;
                }
            else {
                // Hilfe-Fenster bekannt und geoeffnet
                windowExists = 1;
                }
            // Hilfe-Fenster schliessen, falls geoeffnet
            if (windowExists == 1) help.close();
            // Hilfe-Fenster oeffnen und fokussieren
            help = window.open(url + escape(MsgID), "help", properties);
            help.focus();

    MfG
    Ernst Richter

  5. Moin,
    pack am besten das Fenster-Aufmach-Kram in eine Funktion, die lediglich den Dateinamen und die neue Größe bekommt. In deen Links rufst du dann die Funktion entsprechend auf.

    Ich hoff mal die Syntax stimmt, weil ich das jetzt nicht durchgetestet hab.

    Das kommt in dein Hauptfenster von dem die Bilder geladen werden sollen.

    <script language="JavaScript1.3" type="text/javascript">
    // merkt sich das popup-fenster
    var galerie;
    function bilderPopUp(bild, breite, hoehe) {
      // wenn das fenster zu ist, oder beime ersten aufruf
      // neues fenster oeffnen
      if (!galerie || galerie.closed) {
        galerie = window.open('img/big'+bild, 'galerie', 'width='+breite+',height='+hoehe+',resizable=yes,scrollbars=no,menubar=no')
      }
      else
      {
        // (noch) bestehendes popup-fenster wiederverwenden
        // groesse anpassen (evtl. ein paar pixel dazuaddieren)
        galerie.resizeTo(breite, hoehe);
        // und bild-URL setzen
        galerie.location.href = 'img/big'+bild;
      }
    }
    </script>

    Dann in leicht veränderter Form:

    Bild01
    <a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">

    Bild02
    <a href="javascript:// Bild 2" onclick="bilderPopUp('img/big/bild02.jpg', 350, 620);">

    Du wirst bei der Höhe vermutlich etwas dazugeben müssen, da die Fenstergröße sich incl. der Symbolleisten, Statuszeile etc. berechnet. Da diese aber je nach Browser unterschiedlich hoch sind wäre es evtl. sinnvoll, "toolbars", "menubar" & Co. auch auf "no" zu setzen.

    Viel Spaß,
    CirTap

    1. Wow..
      Ich kann nur staunen. Seit 2 Tagen bin ich nach so einem Script auf der suche.. leider gibts ne kleine Fehlermeldung
      zum Einen musste ich das korrigieren damit das Bild angezeigt wurde

      Bild01
      <a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">

      Es heißt dann
      <a href="javascript:// Bild 1" onclick="bilderPopUp('/bild01.jpg', 320, 420);">

      weil oben der Pfad "img/big" schon gesetzt ist:

      galerie = window.open('img/big'+bild, 'galerie', 'width='+breite+',height='+hoehe+',resizable=yes,scrollbars=no,menubar=no')

      wenn man dann das zweite folgend aufrufen möchte
      <a href="javascript:// Bild 2" onclick="bilderPopUp('/bild02.jpg', 350, 620);">
      dann meldet der Editor den Fehler
      "Klasse unterstüzt keine Automatisierung"

      was bedeutet das?
      Trozdem schonmal Vielen Dank!!
      Gruß

      Linus

      1. Andererseits benutze ich einen recht alten Editor mit dem 4.0 IE Explorer.

        Der 6.0 macht dann einfach garnichts..

        Der Editor weist übrigens auf diese Stelle

        if (!galerie || galerie.closed) {

        Gute Nacht allerseits..

        Gruß
        Linus

        1. Hi,

          wenn's nicht der Script aus PAFs Link tut ...

          Der Editor weist übrigens auf diese Stelle

          if (!galerie || galerie.closed) {

          liegt wohl daran, dass das "neue" Fenster nicht zwischengespeichert wird. Sorry, für die Bugs, War wie gesagt aus dem Bauch raus einem älteren Script von mir nachgehackt.

          Inzwischen ist mir auch eingefallen, wo ich den eingesetzt hab:
            http://www.kyrhia.de/js/windetail.js
            http://www.kyrhia.de/ausstellung/index.html

          Die Funktion leistet mir seit Jahren gute Dienste als "popup-Macher".
          Ist zwar dazu gedacht eine HTML-Seite anzuzeigen, aber ich denke, dass bekommst du rausgefummelt und URI ist URI :)
          Dort habe ich den onclick-Handler allerdings in das Vorschaubild rein, da es danach ohnehin mit JS weitergeht. Nicht-scriptierbare werden anders "belohnt" :-)

          Viel Spaß -- dropsdem
          CirTap

    2. Hallo,

      Bild01
      <a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">

      Was soll denn »javascript:// Bild 1« sein? Ein Kommentar im href-Attribut?

      Schon öfters hier vorgestellt:

      <a href="img/big/bild01.jpg" onclick="bilderPopUp(this.href, 320, 420); return false">

      Funktioniert dann auch ohne JavaScript.

      Mathias

      1. Re,

        Was soll denn »javascript:// Bild 1« sein? Ein Kommentar im href-Attribut?

        nur ein sinnloses Goodie: zeigt dir in der Statusleiste beim drübermausen diese "URL", anstelle eines '#' -- und macht eben auch "nix"

        Schon öfters hier vorgestellt:

        <a href="img/big/bild01.jpg" onclick="bilderPopUp(this.href, 320, 420); return false">

        Funktioniert dann auch ohne JavaScript.

        auch wahr :-) würde dann aber evtl. noch ein einheitliches target="blabla" zufügen, damit die aktuelle Seite/aktuelles Fenster stehen bleibt und "blabla" für die anderen Bilder-Links wiederverwendet werden kann.

        CirTap

  6. Hallo!

    Ach waren das noch Zeiten, als hier in diesem Forum Christine Kühnel noch anwesend oder zumindest noch bekannt war...:

    http://www.netz-notizen.de/javascript/tipps/image.htm

    Lediglich Opera dürfte Probs mit window.open('','',Optionen) haben.

    Viele Grüße aus Frankfurt/Main,
    Patrick

    1. Re PAF,

      http://www.netz-notizen.de/javascript/tipps/image.htm

      :-) an den erinner ich mich auch noch ... ein echter "Klassiker"
      Glaub der entstand noch zu MSIE 3.x Zeiten ... <grusel>
      Das HTML müsste allerdings etwas auf Stand gebracht werden ;)

      Gruß,
      CirTap