Ankündigung

Einklappen
Keine Ankündigung bisher.

Link in neuem Fenster

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Link in neuem Fenster

    Hallo Zusammen

    Ich bin neu hier und Anfänger. Deswegen entschuldigt mich vielleicht

    Mit folgendem Code lese ich aus einem Ordner die Dateinamen aus. Ich liste diese auf und stelle sie in einer Tabelle dar. Wenn ich nun doppelklick auf eine Datei mache soll diese in einem neuen Fesnter geöffnet werden. Dies versuche ich mit JavaScript mit dem entsprechenden Event "ondblclick" jedoch funktioniert dies nicht ganz:

    PHP-Code:
                <?php
                $handle 
    opendir("sonntag/");

                while (
    $datei readdir($handle)) {
                    if (
    $datei == ".." OR $datei == ".") {
                        continue;
                    }
                    echo 
    "<tr><td width='150' ondblclick=\"window.open(\"http://www.website.ch/mitarbeiter/123/sonntag/$datei\",\"\",\"width=300,height=300\">$datei</td><td><img src='x.png'/></td></tr><br>";
                }


                
    closedir($handle);
    Was mache ich generell falsch?

  • #2
    Zitat von Lingo Beitrag anzeigen
    Was mache ich generell falsch?
    du sagst uns nicht, was nicht funktioniert

    Prinzipiell solltest du ein paar Schritte befolgen um den Fehler zu finden:
    1. wird etwas dargestellt
    2. wird das richtige dargestellt
    3. passiert irgendwas bei Doppelklick
    4. öffnet sich ein Fenster bei Doppelklick
    5. erscheint der richtige Inhalt in diesem Fenster

    Brav von 1 bis 5 durchgehen. Ich vermute du hängst bei Punkt 3 oder 4.
    3 wäre JS-Fehler, also die Konsole deines Browsers checken
    4 wäre dass dein Browser schlicht sagt: nö, will ich nicht

    Kommentar


    • #3
      Ich hänge bei 3. passiert überhaupt nix. Was meinst du mit Konsole checken? Was soll ich aus der Konsole lesen können?
      Gibt es denn in PHP eine andere Möglichkeit dies zu lösen als mit JavaScript?

      Kommentar


      • #4
        Wahrscheinlich wird der window.open vom einem Popupblocker geblockt. Probier es doch testweise einfach mal mit einem location.href="" statt dem window.open

        Gruß

        Claus
        Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

        Kommentar


        • #5
          IE: F12
          Opera: Strg+Shift+I
          Fx: Firebug installieren, dann ebenfalls F12
          Chrome: sollte auch F12 sein

          Dort hast du jeweils (u.a.) die Möglichkeit eventuell auftretende Fehler in den Skripten der aktuellen Seite zu sehen.

          (und ich hoffe ernsthaft dass dein Browser nicht nur das Popup blockt)

          Und nein, das hat absolut nichts mit PHP zu tun. PHP kennt keine Fenster, keine Links und keinen Doppelklick

          Kommentar


          • #6
            mir fällt gerade auf das " in " wohl nicht funktionieren werden.

            Wenn Du Dir Deinen erzeugten HTML Quelltext mal ansiehst müßte der window open etwa so aussehen:

            Code:
            ondbclick="window.open("url")"
            und das geht natürlich nicht, weil das erste Anführungszeichen des window.open bereits den ganzen ondbclick() beendet

            Gruß

            Claus
            Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

            Kommentar


            • #7
              Hi Lingo,

              übergib doch den Dateinamen an eine JavaScript-Funktion und bastel dir da dein "window.open" zusammen.

              Der Fehler liegt, wie Thallius schrieb, wahrscheinlich an falsch gesetzten Anführungszeichen.

              PHP-Code:
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
              <html>
              <head>
              <title>Untitled</title>
              <script type="text/javascript">
              <!--
              function oeffne_fenster(adresse){
               var NeuesFenster = window.open("http://server/" + adresse, "NeuesFenster", "width=300,height=400");
              }
              // -->
              </script>
              </head>
              <body>
              <table border="1">
              <?php 
              $handle 
              opendir("/www/"); 
              while (
              $datei readdir($handle)) { 
               if (
              $datei == ".." OR $datei == "."){ 
                 continue; 
               }
              ?>
               <!-- Dateinamen in Anführungszeichen bzw. Hochkomma setzen! -->
               <tr><td ondblclick="oeffne_fenster(<?php echo "'$datei'"?>)"><?php echo $datei?></td></tr>
              <?php

              closedir($handle);
              ?>
              </table>
              </body>
              </html>
              Gruß
              Günni

              Kommentar


              • #8
                Hallöchen,

                Zitat von Günni Beitrag anzeigen
                übergib doch den Dateinamen an eine JavaScript-Funktion und bastel dir da dein "window.open" zusammen.
                Mehrwert gleich 0?

                Im Sinne des Progressive Enhancement würde ich hier einfach einen gewöhnlichen Anker verwenden:
                HTML-Code:
                <a target='_blank' href='example.com'>Caption</a>
                Das Doubleclick-Verhalten lässt sich dann mittels JavaScript nachrüsten:
                Code:
                $('td a[target="_blank"]').on('dblclick', function(){
                    // ...
                });
                usw.

                Viele Grüße,
                lotti
                [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                Kommentar


                • #9
                  Zitat von lottikarotti Beitrag anzeigen
                  Hallöchen,


                  Mehrwert gleich 0?

                  Im Sinne des Progressive Enhancement würde ich hier einfach einen gewöhnlichen Anker verwenden:
                  HTML-Code:
                  <a target='_blank' href='example.com'>Caption</a>
                  Das Doubleclick-Verhalten lässt sich dann mittels JavaScript nachrüsten:
                  Code:
                  $('td a[target="_blank"]').on('dblclick', function(){
                      // ...
                  });
                  usw.

                  Viele Grüße,
                  lotti
                  Was ist denn eigentlich der Vorteil die Aktion aus dem td rauszunehmen? Das wird hier immer wieder empfohlen aber ich sehe da keinen rechten Mehrwert.

                  Wenn man den td dann sieht weiß man nicht, dass der href erst beim Doppelklick ausgelöst wird. Man muss erst im ganzen Source durchsuchen (und das kann ja sogar im schlimmsten Fall in irgendeinem include sein) um herauszufinden was da passiert und warum.

                  Irgendwie ist es doch viel eindeutiger wenn die Aktion auch dort steht wird wo sie aufgerufen wird.

                  Gruß

                  Claus
                  Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                  Kommentar


                  • #10
                    Hallöchen,

                    Zitat von Thallius Beitrag anzeigen
                    Was ist denn eigentlich der Vorteil die Aktion aus dem td rauszunehmen? Das wird hier immer wieder empfohlen aber ich sehe da keinen rechten Mehrwert.

                    Wenn man den td dann sieht weiß man nicht, dass der href erst beim Doppelklick ausgelöst wird. Man muss erst im ganzen Source durchsuchen (und das kann ja sogar im schlimmsten Fall in irgendeinem include sein) um herauszufinden was da passiert und warum.

                    Irgendwie ist es doch viel eindeutiger wenn die Aktion auch dort steht wird wo sie aufgerufen wird.
                    Why inline (..) JavaScript is such a bad thing

                    TL;DR Readability, Maintainability, Accessibility, Performance, Caching..

                    Viele Grüße,
                    lotti
                    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                    Kommentar

                    Lädt...
                    X