Sabine: Frage zu <a href>

Hallo,

könnt ihr mir sagen was genau in dieser Zeile passiert:

<a href="index.php" onclick="FensterOeffnen(this.href); return false">

Ich bin Neueinsteiger und habe sowas in dem Quellcode einer Seite gefunden.

  1. Hi,

    könnt ihr mir sagen was genau in dieser Zeile passiert:
    <a href="index.php" onclick="FensterOeffnen(this.href); return false">

    beim Klick auf den Link reagiert, falls vorhanden und aktiviert, die JavaScript-Engine auf das onclick-Ereignis und führt die Funktion FensterOeffnen() aus, der sie den Wert des href-Attributs dieses Links übergibt. Wird die Funktion korrekt abgearbeitet, sorgt das "return false" dafür, dass die eigentlich mit dem Klick belegte Aktion - also das Anfordern der Link-URL - nicht ausgeführt wird. Ohne (aktivierte) JavaScript-Engine kannst Du Dir das onclick-Attribut einfach komplett wegdenken.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hier die JavaScript Funktion:

      <script type="text/javascript">
          function FensterOeffnen (Adresse)
          {
              MeinFenster = window.open(Adresse, "Zweitfenster",
                                        "width=640, height=250,
                                         left=100,top=200");

      MeinFenster.focus();
          }
      </script>

      Wie du siehst macht sie nichts anderes als die übergebene Adresse in einem neuen Fenster aufzurufen.

      Das Beispiel das diesen Code enthält heißt "Demo_ohne_Server". Kann es sein, das das nur so gemacht ist, das auch php-Dateien ohne Server aufgerufen werden können. Oder was denkst du hat das für einen Sinn?

      1. Hallo,

        <script type="text/javascript">
            function FensterOeffnen (Adresse)
            {
                MeinFenster = window.open(Adresse, "Zweitfenster",
                                          "width=640, height=250,
                                           left=100,top=200");

        MeinFenster.focus();
            }
        </script>

        Wie du siehst macht sie nichts anderes als die übergebene Adresse in einem neuen Fenster aufzurufen.

        Das Beispiel das diesen Code enthält heißt "Demo_ohne_Server". Kann es sein, das das nur so gemacht ist, das auch php-Dateien ohne Server aufgerufen werden können. Oder was denkst du hat das für einen Sinn?

        Das hat überhaupt nichts mit PHP zu tun. Die Funktion ist lediglich für Popups zuständig, mehr nicht. Was darin geladen wird ist der Funktion ziemlich egal.

        Grüße, Matze

      2. Hallo

        Hier die JavaScript Funktion:

        <script type="text/javascript">
            function FensterOeffnen (Adresse)
            {
                MeinFenster = window.open(Adresse, "Zweitfenster",
                                          "width=640, height=250,
                                           left=100,top=200");

        MeinFenster.focus();
            }
        </script>

        Das Beispiel das diesen Code enthält heißt "Demo_ohne_Server". Kann es sein, das das nur so gemacht ist, das auch php-Dateien ohne Server aufgerufen werden können.

        Nein. JavaScript wird im Browser ausgeführt, damit funktioniert es natürlich auch ohne Server. PHP wird auf dem Server ausgeführt (zwischen Anforderung und Auslieferung eines Dokuments an den Browser). Das sind zwei verschiedene Sachen.

        Dass in deinem Beispiel eine PHP-Datei angefordert werden soll, tut nichts zur Sache. Es könnte sich genausogut um ein aufzurufendes HTML-Dokument oder ein PDF-Dokument oder eine Textdatei handeln, die heruntergeladen werden sollen.

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

    könnt ihr mir sagen was genau in dieser Zeile passiert:

    <a href="index.php" onclick="FensterOeffnen(this.href); return false">

    beim Klick auf den Link wird die JavaScript-Funktion FensterOeffnen() aufgerufen und dabei der Wert des href-Attributes übergeben. Die Ausführung des Links selbst wird durch return false unterdrückt.

    Da die Funktion FensterOeffnen heißt, ist davon auszugehen, dass die Funktion versucht ein Popup zu öffnen und darin den Inhalt der index.php zu laden.

    Grüße, Matze

  3. @@Sabine:

    könnt ihr mir sagen was genau in dieser Zeile passiert:
    <a href="index.php" onclick="FensterOeffnen(this.href); return false">

    Wenn kein JavaScript ausgeführt wird (deaktiviert), dem Link zu "index.php" gefolgt, sonst gar nichts weiter.

    Wenn JavaScript ausgeführt wird, wird die Funktion 'FensterOeffnen()' aufgerufen, und zwar mit dem Parameter "index.php", da this sich auf das ebendieses Element bezieht (das 'a'-Element) und dessen Eigenschaft href den Wert des 'href'-Attributs ("index.php") hat. Das nachfolgende 'return false' sorgt dafür, dass nicht dem Link zu "index.php" gefolgt wird.

    (Vermutlich sorg die Funktion 'FensterOeffnen()' dafür, dass der Inhalt von "index.php" in einem anderen Fenster gargestellt wird – sofern ein Popup-Blocker im Browser des Nutzers dies nicht verhindert.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Hallo,

      (Vermutlich sorg die Funktion 'FensterOeffnen()' dafür, dass der Inhalt von "index.php" in einem anderen Fenster gargestellt wird – sofern ein Popup-Blocker im Browser des Nutzers dies nicht verhindert.

      Interessanter einwand mit dem Popup-Blocker. Würde es helfen das so umzuschreiben?

      <script type="text/javascript">
       function fenster_oeffnen(url) {
        return ! window.open(url, "test");
       }
      </script>

      <a href="index.html" onclick="return fenster_oeffnen(this.href);">Test</a>

      Verstehe ich das richtig dass die Methode open das Fensterobjekt nicht zurückgibt, wenn der Popupblocker nicht erlaubt das Fenster zu öffnen?

      Jeena

      1. Hallo,

        Verstehe ich das richtig dass die Methode open das Fensterobjekt nicht zurückgibt, wenn der Popupblocker nicht erlaubt das Fenster zu öffnen?

        Popup-Blocker sind soweit ich weiß ziemlich assig, sie sorgen nicht zuverlässig dafür, dass window.open false o.ä. zurückgibt, sondern brechen das JavaScript auch gerne einfach komplett ab. Aber das müsste man durchtesten, ich habe mich da nie so detailliert für interessiert.

        Mathias

        1. Hallo molily,

          Popup-Blocker sind soweit ich weiß ziemlich assig, sie sorgen nicht zuverlässig dafür, dass window.open false o.ä. zurückgibt, sondern brechen das JavaScript auch gerne einfach komplett ab. Aber das müsste man durchtesten, ich habe mich da nie so detailliert für interessiert.

          Das hängt vom Popup-Blocker ab. Ordentliche Popup-Blocker wie in Firefox oder Oera liefern tatsächlich false zurück. Es gibt aber auch primitive externe tools, die killen das Fenster einfach millisekunden nachdem der Browser es geöffnet hat und in so einem Fall würde wahrscheinlich true zurückgegeben werden.

          Jonathan

  4. Hallo Sabine!

    (HTML/XHTML) Frage zu <a href> von Gunnar Bittersmann, 03.02.2008, 18:25
    (HTML/XHTML) Frage zu <a href> von Matze, 03.02.2008, 18:22
    (HTML/XHTML) Frage zu <a href> von Cheatah, 03.02.2008, 18:20

    ... Cheatah!

    Was ein weiblicher Vorname alles bewirken kann ;)

    Ach übrigens, warum beneiden Terroristen gute Sekretärinnen? Wegen der Anzahl der Anschläge pro Minute...

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    Nichts ist unmöglich? Doch!
    Heute schon gegökt?
    1. Hi,

      Was ein weiblicher Vorname alles bewirken kann ;)

      er kann beispielsweise bewirken, dass manche Leute glauben, er sei für irgendwas verantwortlich. Andere Leute wiederum halten den Inhalt für sehr viel entscheidender.

      Ach übrigens, warum beneiden Terroristen gute Sekretärinnen? Wegen der Anzahl der Anschläge pro Minute...

      Ach so, Du hast nur einen Vorwand gesucht, um einen Flachwitz anzubringen. Na denn: Füße hoch, allerseits ...

      Cheatah, kopfschüttelnd

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo Cheatah!

        Was ein weiblicher Vorname alles bewirken kann ;)
        er kann beispielsweise bewirken, dass manche Leute glauben, er sei für irgendwas verantwortlich.

        Ja.

        Ach so, Du hast nur einen Vorwand gesucht, um einen Flachwitz anzubringen.

        Ja...

        Na denn: Füße hoch, allerseits ...

        Ja!

        Cheatah, kopfschüttelnd

        Tja... :(

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --

        _ - jenseits vom delirium - _
        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        Nichts ist unmöglich? Doch!
        Heute schon gegökt?
      2. Hallo,

        Hi,

        (..)

        Cheatah, kopfschüttelnd

        ...und wieder erster... *staun

        Grüße, Matze

    2. Hallo,

      (HTML/XHTML) Frage zu <a href> von Gunnar Bittersmann, 03.02.2008, 18:25
      (HTML/XHTML) Frage zu <a href> von Matze, 03.02.2008, 18:22
      (HTML/XHTML) Frage zu <a href> von Cheatah, 03.02.2008, 18:20

      ... Cheatah!

      Gunnar und ich tippen nur langsamer^^
      Ich tipp sogar noch darauf, dass Cheatah am schnellsten lesen kann :)

      Was ein weiblicher Vorname alles bewirken kann ;)

      Daran lag es nicht, die Frage war nur zu einfach. Selbst ich als JavaScript-Depp konnte den Code ja nachvollziehen^^

      Ach übrigens, warum beneiden Terroristen gute Sekretärinnen? Wegen der Anzahl der Anschläge pro Minute...

      und da soll nochmal einer sagen hier gibt es keinen Humor :)

      Grüße, Matze