Werner: Javascript function beim Laden ausführen

Hallo!
Ich möchte gerne eine Javascript function beim Laden meiner Seite ausführen.
Alles was ich bisher versucht habe, klappte nicht.
Vielleicht liegt es daran, dass ich php-tags in der function habe?

Kann mir einer helfen?

Vielen Dank
Werner

  1. Hallo Werner.

    Ich möchte gerne eine Javascript function beim Laden meiner Seite ausführen.
    Alles was ich bisher versucht habe, klappte nicht.

    Und was hast du bisher versucht?

    Vielleicht liegt es daran, dass ich php-tags in der function habe?

    Die sind für JavaScript ohne Belang, da von PHP nichts mehr zu sehen ist, wenn JavaScript zum Zuge kommt.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Hallo Ashura!
      Ich habe bis jetzt window.open und function start() probiert.
      Aber vielleicht hab ich des auch falsch angewendet.

      Wie benutzt man die Tags richtig?

      Gruß Werner

      1. Hallo Werner.

        Ich habe bis jetzt window.open und function start() probiert.

        Und welches dieser beiden würdest du mit „beim Laden“ in Verbindung bringen? Ich keines von beiden.

        Also tun wir nun was? Richtig, wir versuchen, in SELFHTML fündig zu werden.

        Es geht um JavaScript, also rufen wir auch dieses Kapitel auf. *click*

        Einführung interessiert uns nicht, also schauen wir einmal bei den Sprachelementen hinein. *click*

        Hm … „Event“ heißt „Ereigniss“. Das Laden einer Seite ist doch ein Ereigniss, oder? Dann gehen wir einmal dort hin. *click*

        Ah, da ist es ja: „onload (beim Laden einer Datei)

        Wie benutzt man die Tags richtig?

        Welche Tags?

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hi Ashura,

          Event“ heißt „Ereigniss“.

          was?

          Das Laden einer Seite ist doch ein Ereigniss, oder?

          Ein wass?

          Naja, also vielleicht gehe ich dem einen oder anderen ja auf den Sender, wenn ich hier immer mit meiner Rechtschreibungs-Besserwisserei ankomme, aber das tut mir auch wirklich jedesmal im Auge weh. Die meisten Wörter, die auf -nis enden und mir bekannt sind, tun das nun mal bloß mit einem einzigen „s“ und kriegen das zusätzliche erst im Plural...

          Viele Grüße
           Ben*scnr*jamin

          --
          Der nächste Satz ist gelogen.
          Der vorherige Satz ist wahr.
          1. Hi Ingrid,

            die fehlenden Zitatzeichen möge sich bitte jeder dazudenken. Soviel dann zu meiner eigenen Blödheit... ;-)

            Viele Grüße
             Benjamin

            --
            Der nächste Satz ist gelogen.
            Der vorherige Satz ist wahr.
          2. Hallo Benjamin.

            Das Laden einer Seite ist doch ein Ereigniss, oder?

            Ein wass?

            Autsch.

            Naja, also vielleicht gehe ich dem einen oder anderen ja auf den Sender, wenn ich hier immer mit meiner Rechtschreibungs-Besserwisserei ankomme, aber das tut mir auch wirklich jedesmal im Auge weh.

            Ich kann dich verstehen, mir geht es oft ebenso.

            Die meisten Wörter, die auf -nis enden und mir bekannt sind, tun das nun mal bloß mit einem einzigen „s“ und kriegen das zusätzliche erst im Plural...

            Berechtigter Hinweis.

            In diesem Sinne finde ich die Rechtschreibreform wieder inkonsequent. Ich spreche besagte Wörter ja schließlich mit einem kurzen Vokal aus, also müsste man folgerichtig vermuten dürfen, dass der darauf folgende Konsonant verdoppelt wird. (Siehe „dass“, „muss“, ect.)
            Aber - Pustekuchen!

            Ob Fipptehler oder freudscher Fehler, es war ein Fehler. Danke für die Korrektur.

            Einen schönen Samstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
        2. Hallo Ashura,

          Hm … „Event“ heißt „Ereigniss“. Das Laden einer Seite ist doch ein Ereigniss, oder?

          Nein, Event heißt nicht "Ereigniss", und das Laden einer Seite ist auch kein solches.
          In gewissem Sinn ist es aber ein _Ereignis_.

          Wie benutzt man die Tags richtig?
          Welche Tags?

          Gute Frage. Nächste Frage?  ;-)
          Beim Lesen der beiden Postings von Werner war ich mir außerdem *wirklich* unsicher, ob das eine ernstgemeinte Frage oder ein weiterer Aprilscherz sein möchte.

          Sorry, Werner, falls ich dir Unrecht tue, aber an einem solchen Tag ist man gegenüber allem skeptisch, was nur im entferntesten merkwürdig aussieht.

          Schönen Abend noch,
           Martin

          --
          Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
          Die Zivilisation hatte begonnen.
        3. Hello,

          ja: „onload (beim Laden einer Datei)

          onload ist aber kein Trigger für "beim Laden", sondern für "nach dem Laden".

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

          1. Hallo Tom.

            ja: „onload (beim Laden einer Datei)

            onload ist aber kein Trigger für "beim Laden", sondern für "nach dem Laden".

            Das Missverständnis dürfte aus der Übersetzung „on load“ → „beim Laden“ herrühren.
            Genau genommen hast du natürlich Recht.

            Einen schönen Samstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
  2. Hallo,

    Ich nutze ja schon länger addLoadEvent() da kann man auch gleich mehrere funktionen damit aufrufen, das ist nett.

    Grüße
    Jeena Paradies

    1. Hallo Jeena.

      Ich nutze ja schon länger addLoadEvent() da kann man auch gleich mehrere funktionen damit aufrufen, das ist nett.

      Ich favorisiere seit Längerem addEventListener, wenn ich weiß, dass ggf. mehrere Methoden gleichzeitig initialisiert werden müssen.

      Einen schönen Samstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hallo,

        Ich favorisiere seit Längerem addEventListener, wenn ich weiß, dass ggf. mehrere Methoden gleichzeitig initialisiert werden müssen.

        Interessant, nur kappiere ich nicht wirklich wie man das anwenden soll, hast du da mal ein kurzes Beispiel?

        Grüße
        Jeena Paradies

        1. Hallo Jeena.

          [ addEventListener ]

          Interessant, nur kappiere ich nicht wirklich wie man das anwenden soll, hast du da mal ein kurzes Beispiel?

          Ich war eigentlich der festen Überzeugung, dass dir dieses bereits bekannt sei. Sei's drum, hier einmal ein Beispiel:

          function foo() {  
            
            alert('/me has been loaded.');  
            
          }  
            
          window.addEventListener('load', foo, false);
          

          Oder wie gewohnt alternativ:

          window.addEventListener('load', function() {  
            
            alert('/me has been loaded., too.');  
            
          }, false);
          

          Das Problem hierbei stellt (wie so oft) der IE dar; er kennt diese Methode nicht, dafür aber die proprietäre attachEvent-Methode.
          Hier muss also per Abfrage leider wieder unterschieden werden:

          if (window.addEventListener) {  
            
            window.addEventListener('load', foo, false);  
            
          } else if (window.attachEvent) {  
            
            window.attachEvent('onload', foo);  
            
          }
          

          Und selbst dieses unterstützt der IE im Übrigen erst ab Version 5.5.

          Einen schönen Sonntag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. [ addEventListener ]

            Interessant, nur kappiere ich nicht wirklich wie man das anwenden soll, hast du da mal ein kurzes Beispiel?

            und hier eine lange, lange Diskussion, wie man die zwei (bzw. drei) Methoden richtig einsetzen könnte http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html

            Struppi.

            1. Hallo Struppi.

              und hier eine lange, lange Diskussion, wie man die zwei (bzw. drei) Methoden richtig einsetzen könnte http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html

              Ah, sehr gut. Kombiniert ergibt dies nun also Folgendes:

              function addEvent(obj, type, fn) {  
                if (obj.addEventListener) {  
                
                  obj.addEventListener(type, fn, false);  
                
                } else if (obj.attachEvent) {  
                
                  var eProp = type + fn;  
                  obj['e' + eProp] = fn;  
                  obj[eProp] = function() {  
                    obj['e' + eProp](window.event);  
                  };  
                  obj.attachEvent('on' + type, obj[eProp]);  
                
                } else {  
                
                  var oLoad = obj['on' + type];  
                
                  if (typeof(obj['on' + type]) != 'function') {  
                    obj['on' + type] = fn;  
                  } else {  
                    obj['on' + type] = function() {  
                      oLoad();  
                      fn();  
                    }  
                  }  
                }  
              }
              

              Dies funktioniert nun offenbar sogar im IE 5.0.

              Einen schönen Sonntag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
              [HTML Design Constraints: Logical Markup]
              1. Hallo,

                var eProp = type + fn;
                    obj['e' + eProp] = fn;
                    obj[eProp] = function() {
                      obj'e' + eProp;
                    };
                    obj.attachEvent('on' + type, obj[eProp]);

                Dieses Gefummel mit Function.prototype.toString() als Hash ist nur nötig, weil IE 5 kein Function.prototyp.apply() versteht.

                Sprich, wenn du IE 5 sowieso mit dieser Methode abspeist:

                var oLoad = obj['on' + type];

                if (typeof(obj['on' + type]) != 'function') {
                      obj['on' + type] = fn;
                    } else {
                      obj['on' + type] = function() {
                        oLoad();
                        fn();
                      }
                    }

                ...dann kannst du für IE > 5.0 auch gleich apply() verwenden. Die Frickelei mit apply() bzw. mit obj[type + fn] = function () { obj'e' + type + fn; }; macht man nur, damit man mit this auf das Element zugreifen kann, dessen Event-Handler gerade gefeuert wird. Denn der IE kennt die DOM-Events-Eigenschaft currentTarget nicht, this hat aber denselben Effekt.

                Die Event-Eigenschaften target (IE: srcElement) verweist auf das Element, bei dem das Ereignis tatsächlich passierte, currentTarget (IE: this) hingegen auf das Element, dessen Handler das Ereignis gerade. Meistens interessiert einen nur target/srcElement. currentTarget/this braucht man, wenn man in Erfahrung bringen will, ob das Element, dessen Handler gefeuert wurde, auch das Ziel des Elements ist. Wenn das der Fall ist, stimmen target/srcElement und currentTarget/this überein. In dem Fall befindet sich der Event in der Target-Phase, andernfalls in der Capturing- oder Bubbling-Phase (im IE gibt es nur die Target- und die Bubbling-Phase). Aufsteigende Events will man meistens nicht verarbeiten, da sie meist schon in Target-Phase verarbeitet wurden.

                Gut, mir fällt jetzt auch kein Praxisbeispiel ein, bei dem es unbedingt nötig ist, auf currentTarget/this zuzugreifen, um sie mit target/srcElement zu vergleichen. Meistens nutzt man das Feature des Bubblings gar nicht und registriert Handler so, dass sie sich nicht in die Quere kommen, also jeder Event nur genau einen Handler auslöst. (Genauer gesagt, Bubbling benutzt man eigentlich gerade dazu, um die aufsteigenden Events verschiedener Kindelemente zu verarbeiten, damit man nicht dutzende Handler bei den einzelnen Kindelementen registrieren muss. Dann ist der Zugriff auf target/srcElement notwendig, aber nicht auf currentTarget/this.) Man bräuchte verschachtelte Elemente mit Handlern für denselben Event-Typ, damit es überhaupt dazu kommt, dass ein Event zwei Handler auslösen kann. Und das ist meist gewollt.

                Sprich, für die meisten einfachen Event-Handling-Aufgaben reichen einfache addEvent-Funktionen aus. Wenn man this nicht braucht, braucht man auch keine Bastelei mit apply() oder Closures.

                Mathias

          2. hi,

            Und selbst dieses unterstützt der IE im Übrigen erst ab Version 5.5.

            Sicher?
            Also ich meine, dass auch schon im IE 5.01/WinNT erfolgreich probiert zu haben (nativ, kein "emulierter" IE).

            Und auf der von dir verlinkten Seite beschreibt Microsoft die Methode auch als unter Windows ab 5er-IEs verfügbar, lediglich für Windows CE wird explizit von IE 5.5 geschrieben.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hallo wahsaga.

              Und selbst dieses unterstützt der IE im Übrigen erst ab Version 5.5.

              Sicher?

              Ja, ich habe es überprüft.

              Also ich meine, dass auch schon im IE 5.01/WinNT erfolgreich probiert zu haben (nativ, kein "emulierter" IE).

              Ich habe es mit dem IE 5.01 unter Debian GNU/Linux mit Hilfe von WINE probiert, also auch kein emulierter IE.

              Und auf der von dir verlinkten Seite beschreibt Microsoft die Methode auch als unter Windows ab 5er-IEs verfügbar, lediglich für Windows CE wird explizit von IE 5.5 geschrieben.

              Die Beschreibung habe ich auch gesehen, aber mich lieber auf die Tatsachen gestützt.

              Einen schönen Sonntag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
              [HTML Design Constraints: Logical Markup]