Adam Helmbrechts: Fenster öffnen

Hallo,
dieses Skript funktioniert toll, aber nur im IE...

function popup(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "',

'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=1,resizable=1,width=900,height=680');");
}

<a href="javascript:popup('../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg" width="400" height="300" /></a>

  1. Hi,

    danke für die Info!

    ~dave

  2. <a href="javascript:popup('../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg" width="400" height="300" /></a>

    Das funktioniert mit Sicherheit auch nicht im IE.

    Struppi.

    1. <a href="javascript:popup('../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../ordner_' . $_GET['id'] . '_' . $row['id'] . '.jpg" width="400" height="300" /></a>

      Das funktioniert mit Sicherheit auch nicht im IE.

      So ist das ganze Skript.

      <?php

      $res = mysql\_query('SELECT \* FROM tabelle' . $\_GET['id'] . 'tabelle ORDER BY Datum ASC');  
      while ( $row = mysql\_fetch\_array($res) ) {  
      	echo '<tr><td align="left"><a href="javascript:popup(\'../data/tabelle/tabelle\_' .  
      

      $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../tabelle/tabelle/tabelle_' . $_GET['id'] . '_' .

      $row['id'] . '.jpg" width="400" height="300" /><br />' . $row['Datum'] . '<br /><br /><br /></td></tr>';
      }
      ?>

      1. Das funktioniert mit Sicherheit auch nicht im IE.

        So ist das ganze Skript.

        Das ist PHP, nicht JavaScript - und wenn es tatsächlich ein PHP-Problem ist, funktioniert es in keinem Browser.

        Nebst dessen wissen wir nicht, was das Problem ist - nur eben dass es "toll funktioniert".

        1. Nebst dessen wissen wir nicht, was das Problem ist - nur eben dass es "toll funktioniert".

          Ha, korrekt :)

          Es soll ein Fenster öffnen und das tuts nur im IE.

          Hm.....hab ich echt geschrieben funktioniert toll. Oh man, es muß heißen: Es funktioniert nur im IE und öffnet ein Fenster.
          Hm liegts am Wetter?

      2. So ist das ganze Skript.

        <?php

        Auch das funktioniert in keinem Browser. Du hast doch bereits das richitge Themngebiet ausgewählt. Wenn es um JS geht, dann zeiug uns JS und nicht den Code der auf dem Server läuft.

        Und versuche einmal eine vernünftige Fehlerbeschreibung zu formulieren.

        Struppi.

        1. Und versuche einmal eine vernünftige Fehlerbeschreibung zu formulieren.

          Struppi.

          Oh man Versuch Nr 3. Es liegt wohl an der Kälte das meine Auffassungsgabe heute beschränkt ist?
          <script type="text/javascript">

          function popup(URL) {
          day = new Date();
          id = day.getTime();
          eval("page" + id + " = window.open(URL, '" + id + "',

          'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=1,resizable=1,width=900,height=680');");
          }

          </script>

          <?php

          $res = mysql_query('SELECT * FROM tabelle' . $_GET['id'] . 'tabelle ORDER BY Datum ASC');
          while ( $row = mysql_fetch_array($res) ) {
          echo '<tr><td align="left"><a href="javascript:popup('../data/tabelle/tabelle_' .

          $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../tabelle/tabelle/tabelle_' . $_GET['id'] . '_' .

          $row['id'] . '.jpg" width="400" height="300" /><br />' . $row['Datum'] . '<br /><br /><br /></td></tr>';
          }
          ?>

          1. <?php

            $res = mysql_query('SELECT * FROM tabelle' . $_GET['id'] . 'tabelle ORDER BY Datum ASC');
            while ( $row = mysql_fetch_array($res) ) {
            echo '<tr><td align="left"><a href="javascript:popup('../data/tabelle/tabelle_' .

            $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../tabelle/tabelle/tabelle_' . $_GET['id'] . '_' .

            $row['id'] . '.jpg" width="400" height="300" /><br />' . $row['Datum'] . '<br /><br /><br /></td></tr>';
            }
            ?>

            Fast: Bitte auch hier: zeig uns das was PHP tatsächlich produziert.

            Das Wetter ist nicht gut bei euch oder? :)

          2. Oh man Versuch Nr 3. Es liegt wohl an der Kälte das meine Auffassungsgabe heute beschränkt ist?

            Scheint so.

            <?php

            und auch beim dritten Versuch sehen wie immer noch nicht, was im Browser ankommt.

            Struppi.

            1. Oh man Versuch Nr 3. Es liegt wohl an der Kälte das meine Auffassungsgabe heute beschränkt ist?

              Scheint so.

              <?php

              und auch beim dritten Versuch sehen wie immer noch nicht, was im Browser ankommt.

              Wir waren bereits bei Versuch #4 und sind schon ein paar Schritte weiter ;)

        2. @@Struppi:

          nuqneH

          nicht den Code der auf dem Server läuft.

          Glück für den OP, dass er den serverseitigen Code doch gezeigt hat. So kann man ihn darauf hinweisen, dass der Code DRINGEND überarbeitet werden muss. $_GET['id'] unbearbeitet weiterzuverarbeiten ist ganz sicher keine gute Idee.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
      3. Hallo,

        So ist das ganze Skript.

        <?php
        $res = mysql_query('SELECT * FROM tabelle' . $_GET['id'] . 'tabelle ORDER BY Datum ASC');

        Du bringst Benutzereingaben direkt in ein SQL-Statement, hier in einen Tabellennamen. Es wäre eine gute Idee, sich über das Problem des Kontextwechsels zu informieren.

        Dass Du viele Tabellen hast, die offensichtlich alle den gleichen Aufbau haben, deutet auf ein kaputtes Datenbankdesign hin.

        while ( $row = mysql_fetch_array($res) ) {
        echo '<tr><td align="left"><a href="javascript:popup('../data/tabelle/tabelle_' .

        $_GET['id'] . '_' . $row['id'] . '.jpg')"><img src="../tabelle/tabelle/tabelle_' . $_GET['id'] . '_' .

        hier missachtest Du schon wieder einen Kontextwechsel. Diesmal stehen die Daten innerhalb eines HTML-Kontextes in einem Javascript-Kontext.

        Neben diesen serverseitigen Problemen ist für clientseitige Probleme der Code relevant, den der Client erhält, sprich das HTML, das dem Client ausgeliefert wird.

        Freundliche Grüße

        Vinzenz

        1. Dass Du viele Tabellen hast, die offensichtlich alle den gleichen Aufbau haben, deutet auf ein kaputtes Datenbankdesign hin.

          Die Tabellen hab ich extra hier umbenannt, die haben natürlich schon einen richtigen Namen :)
          Jedoch liegt der Fehler meiner Meinung nach an dem javascript Aufruf im <a href>.

          1. Hallo Adam,

            Dass Du viele Tabellen hast, die offensichtlich alle den gleichen Aufbau haben, deutet auf ein kaputtes Datenbankdesign hin.

            das war nur nebenbei gesagt.

            Die Tabellen hab ich extra hier umbenannt, die haben natürlich schon einen richtigen Namen :)
            Jedoch liegt der Fehler meiner Meinung nach an dem javascript Aufruf im <a href>.

            klar. Und der wird immer scheitern, wenn Du nicht erhältst, was Du erwartest.
            Dein Script berücksichtigt den Kontextwechsel überhaupt nicht. Das ist gar nicht gut. Man kann Ressourcen nicht nur durch Klicken auf Links aufrufen, man kann sowas auch in die Browserzeile eingeben, ...

            Aber nochmals das Allerwichtigste:
            PHP-Code ist zunächst einmal irrelevant, wenn es um ein clientseitiges Javascript-Problem geht. Da interessiert der Code, der dem Browser ausgeliefert wird. Wärest Du bitte so nett, uns diesen mitzuteilen?

            Freundliche Grüße

            Vinzenz

            1. Serverseitiger Code: * und es schneit wie verrückt *

              <script language="javascript">

              function popup(URL) {
              day = new Date();
              id = day.getTime();
              eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=1,resizable=1,width=900,height=680');");
              }
              </script>

              <a href="javascript:popup('./pages/objektverkauf_baudok.php?id=13');"><b>Baufortschritt</b></a><br /><br />

              Und dieses javascript öffnet sich im IE aber nicht im Firefox:

              1. Und dieses javascript öffnet sich im IE aber nicht im Firefox:

                wozu ist das eval() gut?

                und warum machst du nicht einen gewöhnlichen Link ins href-Attribut und gibst das in einem onlick-Event mittels this.href an deine popup-Funktion weiter?

                http://de.selfhtml.org/navigation/anzeige/popupfenster.htm

                1. Und dieses javascript öffnet sich im IE aber nicht im Firefox:

                  wozu ist das eval() gut?

                  http://www.pixel2life.com/publish/tutorials/548/make_a_javascript_popup_window/

                    1. http://de.selfhtml.org/javascript/objekte/window.htm#open.

                      Da sind wir schon vorbei ;)

                      https://forum.selfhtml.org/?t=202028&m=1363955

                      Das ding ist übrigens auch in den FAQ verlinkt, die der OP behauptet hat, gelesen zu haben.

                      1. Hey suit,

                        http://de.selfhtml.org/javascript/objekte/window.htm#open.

                        Da sind wir schon vorbei ;)

                        sorry, nicht aufgepasst.

                        Gruß, Dennis

                      2. http://de.selfhtml.org/javascript/objekte/window.htm#open.

                        Da sind wir schon vorbei ;)

                        https://forum.selfhtml.org/?t=202028&m=1363955

                        Das ding ist übrigens auch in den FAQ verlinkt, die der OP behauptet hat, gelesen zu haben.

                        In der Tat, damit funktionierts.
                        Hm, alle FAQ hab ich nicht gelesen, aber sind wir ehrlich:

                        In den FAQ steht eigentlich alles drinnen.

                        Hm, gibt nur folgende Möglichkeiten:

                        • es lag am Wetter
                        • ich bin zu bequem zu lesen
                        • ich kann nicht so gut lesen.

                        Hm, die Antwort behalt ich für mich.

                  1. Und dieses javascript öffnet sich im IE aber nicht im Firefox:

                    wozu ist das eval() gut?

                    http://www.pixel2life.com/publish/tutorials/548/make_a_javascript_popup_window/

                    Mit anderen Worten, du weißt es nicht und hast den Müll der dort propagiert wird unreflektiert übernommen? Es gibt also keinen vernünftigen, nachvollziehbaren Grund?

                    Halte dich ans SELFHTML-Beispiel, dann wird alles gut.

              2. Hi there,

                Und dieses javascript öffnet sich im IE aber nicht im Firefox:

                Bei mir schon. Im Javascript ist kein Fehler...

                1. Und dieses javascript öffnet sich im IE aber nicht im Firefox:

                  Bei mir schon. Im Javascript ist kein Fehler...

                  Ich gehe von entsprechenden Sicherheitseinstellung aus die irgendwas mit "eval() und "window.open()" zu tun haben. Ich wäre da jedenfalls misstrauisch ;)