theresa: open window geht nicht immer

Hi

Ein Detailbild sollte in einem Pop-Up grösser gezeigt werden.

Habe esm mit Dreamweaver gemacht, doch es funktioniert nicht auf allen IE, und wenn, dann nur ein oder zweimal, dann öffnen sich keine Fenster mehr.

Im Head steht:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>

der Link:

<a href="#"><img src="images/karte_klein.jpg" width="270" height="270" border="0" onClick="MM_openBrWindow('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','Bild','width=750,height=620')"></a></p>
        <p onClick="MM_openBrWindow('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','Bild','width=750,height=620')"><a href="#" class="textlink">Karte
          gr&ouml;sser zeigen</a>

Der Link soll beim Bild und beim Text sein. Die Variablen brauche ich, damit dann auch das richtige Bild angezeigt wird.

Wieso geht der Link nicht immer?

  1. Morgääähn,

    ich weiß zwar nicht, ob dein Problem damit zusammen hängt, aber vll. solltest du trotzdem erstmal dieses Tag-Gewirr ordnen:

    <a href="#"><img src="images/karte_klein.jpg" width="270" height="270" border="0" onClick="MM_openBrWindow('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','Bild','width=750,height=620')"></a></p>

    ...wird das p-Tag, dass du hier schließt auch irgendwo geöffnet?

    <p onClick="MM_openBrWindow('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','Bild','width=750,height=620')"><a href="#" class="textlink">Karte
              gr&ouml;sser zeigen</a>
    Wieso geht der Link nicht immer?

    ...pack mal das onclick aus dem p-Tag in das a-Tag... Im Moment verweist der Link lediglich auf "#". Ich schätze mal, der Link funktioniert überhaupt nur dann, wenn mal versehentlich den Link-Text nicht genau trifft, sondern - quasi ins leere - p-Tag klickt.

    Gruß,
    Arthur D.

    --
    >> So long, and thanks for all the fish. <<
    1. Habe es anders gelöst, es geht bei mir, nun muss ich es morgen auch auf den anderen PC ausprobieren

      ***************
      <script language="javascript">
      var wstat
      var ns4up = (document.layers) ? 1 : 0
      var ie4up = (document.all) ? 1 : 0
      var xsize = screen.width
      var ysize = screen.height
      var breite=xsize/2
      var hoehe=ysize/2
      var xpos=(xsize-breite)/2
      var ypos=(ysize-hoehe)/2
      function opwin() {
      wstat=window.open("produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>","","scrollbars=no,status=no,toolbar=no,location=no,directories=no,resizable=no,menubar=no,width="+breite+",height="+hoehe+",screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos)
      }
      </script>

      **********

      <a href="javascript:opwin()">
      <img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0">
      </a><br>
      <a href="javascript:opwin()" class='textlink'>Bild gr&ouml;sser zeigen</a>

      ***********

      So ist der Code auch kleiner, und weniger verwirrlich

      Danke

      1. function opwin() {
        wstat=window.open("produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>","","scrollbars=no,status=no,toolbar=no,location=no,directories=no,resizable=no,menubar=no,width="+breite+",height="+hoehe+",screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos)

        hm, was ist denn directories=no?

        <a href="javascript:opwin()">
        <img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0">
        </a><br>
        <a href="javascript:opwin()" class='textlink'>Bild gr&ouml;sser zeigen</a>

        ***********

        So ist der Code auch kleiner, und weniger verwirrlich

        ... und verhindert, dass Besucher, die Javascript deaktiviert haben, in den Genuss deiner Bilder kommen...

        Gruß,
        Arthur D.

        --
        >> So long, and thanks for all the fish. <<
      2. ***************
        <script language="javascript">

        Argh! Wo hast du das denn her?

        var wstat
        var ns4up = (document.layers) ? 1 : 0
        var ie4up = (document.all) ? 1 : 0

        Und das erst? Hier testest du auf Browser die seit einigen Jahren ausgestorben sind, auch das 'up' hintendran kann darüber nicht hinwegtäuschen.

        function opwin() {

        ich glaub dir wurd hier schon dreimal gezeigt wie es besser geht. Aber du scheinst gegen die Vorschläge resident zu sein.

        wstat=window.open("produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>","","scrollbars=no,status=no,toolbar=no,location=no,directories=no,resizable=no,menubar=no,width="+breite+",height="+hoehe+",screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos)

        PHP Code interssiert nicht für eine JS Frage.

        **********

        <a href="javascript:opwin()">
        <img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0">
        </a><br>
        <a href="javascript:opwin()" class='textlink'>Bild gr&ouml;sser zeigen</a>

        Wie gesagt, wie es besser geht wurde dir auch schon gezeigt.

        So ist der Code auch kleiner, und weniger verwirrlich

        Naja, die meisten Angaben bei window.open() sind sowieso die Defaultangaben und daher eigentlich überflüssig.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
  2. Hallo theresa,

    ... Die Variablen brauche ich ...

    ich auch! Denn sonst weiß ich nicht, was wirklich beim Browser ankommt. Poste daher bei Problemen mit Javascript oder HTML den Code, der beim Browser ankommt und nicht das PHP-Zeug (wovon ich auch keine Ahnung habe).

    Bei Deinem Code habe ich aber das Gefühl, dass die HTML-Syntax nicht in Ordnung ist bzw. nicht das ist, was du willst: Bild mit onclick in a ohne vernünftiges Linkziel, dann schließendes p, dann neues p mit onclick, darin a ohne sinnvolles Ziel, schließendes p fehlt.

    Versuch mal so etwas wie:

    <a href="Bild-URL" onclick="window.open(Bild-URL,'Titel','weitere Parameter');return false">...</a>

    So sehen Besucher mit Javascript das Popup-Fenster, andere das Bild im normalen Browserfenster.

    Gruß, Jürgen

    1. Die PHP-Variblen gehen mit, das stimmt soweit. Der Code geht auch, meistens, und bei meinem PC sogar immer. Aber auf einem anderen System öffnet das Fenster nur einmal. Wenn jedoch jemand bei merheren Produkten immer wieder das Fenster öffnen will, geht nichts mehr.

      Meine Frage ist, ob es ausser window.open auch einen anderen Befehl gibt, um ein zusätzlioches Browserfenster zu öffnen.

      Habe inzwischen den Code umgeschreiben, und die Funktion direkt in den Link geschrieben. die beiden Links (Bild und Text) sind im Moment noch nicht ganz gleich, bin beim entwickeln was es wirklich braucht.

      Wiederum bei mir geht es, aber ich traue dem nicht!

      Eine weitere Frage. der href geht zu #, damit bleibt die bisherige Seite. Liegt es ev. darin? Was muss ich da anders machen?

      Der Code als PHP/Javacsript
      ************************

      <p>
      <!-- Start Bild mit Link -->
      <a href="#">
      <img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0" onClick="window.open('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','_blank','width=700,height=500,dependent=yes,location:no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');">
      </a>
      <!-- Ende Bild mit Link -->
      </p>

      <p>
      <!-- Start Textlink -->
      <a href="#" onClick="window.open('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','_blank','width=700,height=500,dependent=yes,location:no');" class="textlink">
      Bild gr&ouml;sser zeigen
      </a>
      <!-- Ende Textlink -->
      </p>

      ************************
      Der im Browser generierte Code
      ************************
      <p>
               <a href="#">
               <img src="images/1156611691.pjpeg" width='200' border="0" onClick="window.open('produktebild.php?pro_bildgross=1156611701.pjpeg&pro_titel=MS-5200XL','_blank','width=700,height=500,dependent=yes,location:no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');">
            </a></p>
            <p>

      <a href="#" onClick="window.open('produktebild.php?pro_bildgross=1156611701.pjpeg&pro_titel=MS-5200XL','_blank','width=700,height=500,dependent=yes,location:no');" class="textlink">Bild gr&ouml;sser zeigen</a> </p>
      ************************

      1. Meine Frage ist, ob es ausser window.open auch einen anderen Befehl gibt, um ein zusätzlioches Browserfenster zu öffnen.

        Du kannst auch gewöhnlichen Link nehmen (also ohne Javascript):
        <a href="produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>" target=_blank><img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0"></a>
        Allerdings kannst du dann das Aussehen des Fensters (Größe, Scrollbars etc.) nicht beeinflussen.

        Habe inzwischen den Code umgeschreiben, und die Funktion direkt in den Link geschrieben. die beiden Links (Bild und Text) sind im Moment noch nicht ganz gleich, bin beim entwickeln was es wirklich braucht.

        Wiederum bei mir geht es, aber ich traue dem nicht!

        Du hast ja jetzt das Zielfenster von "Bild" zu "_blank" geändert. Vorher wurde die neue Seite immer in dem selben Fenster geladen, was, wenn dieses nicht geschlossen wurde, heimlich im Hintergrund geschieht - hast du da evtl. übersehen, dass die neue Seite geladen wurde? Hier könntest du, wenn du eh Javascript benutzt, dieses neue Fenster bei jedem Klick im Hauptfenster in den Vordergrund holen...

        Eine weitere Frage. der href geht zu #, damit bleibt die bisherige Seite. Liegt es ev. darin? Was muss ich da anders machen?

        Hier solltest du den href generell auf die zu öffnende Seite verweisen lassen, damit auch User ohne Javascript was davon haben. Ein return false; im onclick-Ereignis (onclick="window.open(...); return false;) verhindert dann, dass bei erfolgreichem onclick der Link zusätzlich ausgeführt wird.

        Der Code als PHP/Javacsript
        ************************

        <p>
        <!-- Start Bild mit Link -->
        <a href="#">
        <img src="images/<? echo"$row[pro_bild]";?>" width='200' border="0" onClick="window.open('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','_blank','width=700,height=500,dependent=yes,location:no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');">
        </a>
        <!-- Ende Bild mit Link -->
        </p>

        <p>
        <!-- Start Textlink -->
        <a href="#" onClick="window.open('produktebild.php?pro_bildgross=<? echo"$row[pro_bildgross]";?>&pro_titel=<? echo"$row[pro_titel]";?>','_blank','width=700,height=500,dependent=yes,location:no');" class="textlink">
        Bild gr&ouml;sser zeigen
        </a>
        <!-- Ende Textlink -->
        </p>

        ************************
        Der im Browser generierte Code
        ************************
        <p>
                 <a href="#">
                 <img src="images/1156611691.pjpeg" width='200' border="0" onClick="window.open('produktebild.php?pro_bildgross=1156611701.pjpeg&pro_titel=MS-5200XL','_blank','width=700,height=500,dependent=yes,location:no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');">
              </a></p>
              <p>

        <a href="#" onClick="window.open('produktebild.php?pro_bildgross=1156611701.pjpeg&pro_titel=MS-5200XL','_blank','width=700,height=500,dependent=yes,location:no');" class="textlink">Bild gr&ouml;sser zeigen</a> </p>
        ************************

        --
        >> So long, and thanks for all the fish. <<