wiberg: document.onload

Tut mir Leid, euch mit diesem Kram zu belästigen, aber

function init() {
  alert("lol");
}

window.onload = init;

funktioniert aus irgendeinem Grund nicht und ich krieg es seit Stunden nicht zum Laufen... Nicht zu fassen.

  1. Hoppla, der Thread hätte eigentlich auch window.onload heißen sollen...

  2. hallo,

    Tut mir Leid, euch mit diesem Kram zu belästigen, aber

    Tut mir leid, dich mit einer klitzekleinen Korrektur belästigen zu müssen, aber

    function init() {
      alert("lol");
    }

    muß ja wohl korrekt sein, gelle? Und

    window.onload = init;

    Müßte dann den Fehler enthalten, gelle nochmal?

    Um das rauszufinden, solltest du einfach mal vergleichen:

    function init()
    window.onload = init;

    irgendwas fehlt doch da ...

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      function init()
      window.onload = init;
      irgendwas fehlt doch da ...

      wieso, möchtest Du onLoad die Rückgabe der zu Beginn ausgeführten init()-Funktion ausführen?

      @wiberg: Ein Link zur fehlerhaften Seite könnte helfen.

      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. function init()
        window.onload = init;
        irgendwas fehlt doch da ...

        Yo, mit Klammern wär's falsch...

        wieso, möchtest Du onLoad die Rückgabe der zu Beginn ausgeführten init()-Funktion ausführen?

        genau

        @wiberg: Ein Link zur fehlerhaften Seite könnte helfen.

        Hab's nur auf localhost. Ich werds einfach weiterprobieren... Liegt bestimmt an irgendetwas anderem.

      2. PFFT

        habs: hatte das Script in einer externen Datei und in der HTML-Datei einen weiteren Scriptteil, der auch ein window.onload enthielt. Wusste nicht, dass das nicht geht. Vielleicht kann mir jemand, jetzt, wo ich weiß, DASS es nicht geht, erklären, WARUM es nicht geht? (Hui. Und kann mir auch jemand sagen, ob alle Kommata in dem Satz richtig waren :) ?)

        MFG-Wiberg

        1. Hi,

          habs: hatte das Script in einer externen Datei und in der HTML-Datei einen weiteren Scriptteil, der auch ein window.onload enthielt. Wusste nicht, dass das nicht geht. Vielleicht kann mir jemand, jetzt, wo ich weiß, DASS es nicht geht, erklären, WARUM es nicht geht?

          window.onload ist eine beschreibbare Eigenschaft. Du hast sie einmal beschrieben, dann ein zweites Mal - was der erste Wert nicht verhindern konnte. Es kann immer nur eine Referenz drin stehen.

          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. Tjo, wo du das sagst klingt es irgendwie... logisch.
            Ich finde, dass ich JavaScript recht gut kann, aber wie immer beim programmieren, solche Probleme machen einen wahnsinnig...
            Wie auch immer, vielen Dank :-)

      3. hallo Cheatah,

        wieso, möchtest Du onLoad die Rückgabe der zu Beginn ausgeführten init()-Funktion ausführen?

        öhm ... ich möchte gar nix. Aber ich bin bisher davon ausgegangen, daß eine Javascript-Funktion so ausgeführt werden sollte, wie sie notiert wurde. Wenn also innerhalb der <script>-tags steht
           init();
        sollte auch der EventHandler diese Funktion einschließlich (eventuell leerer) Klammer aufrufen, also:
           onload=init();

        Wir haben leider von wiberg nicht erfahren, ob er seine Scriptgeschichten im Header seines HTML-Dokuments notiert oder im body, und das kann ja gelegentlich einen Unterschied ausmachen. Ich gehe nicht davon aus, daß wibergs "init()" doppelt aufgerufen würde, wie du ganz leise zu verstehen gibst.

        Ich möchte allerdings, nur um das vollständigkeitshalber zu sagen, von einem HTML-Dokument nicht unbedingt onLoad mit "lol" begrüßt werden, das ist mir zu minimalistisch *g*

        Grüße aus Berlin

        Christoph S.

        1. Hi,

          öhm ... ich möchte gar nix. Aber ich bin bisher davon ausgegangen, daß eine Javascript-Funktion so ausgeführt werden sollte, wie sie notiert wurde.

          jau (wobei das nichts mit der Form der Notation zu tun hat, sondern einfach damit, wie man Funktionen notiert und wie man sie ausführt). In dem Moment, wo window.onload gesetzt wird, soll die Funktion aber gar nicht ausgeführt werden - sondern lediglich die Referenz auf die Funktion gespeichert.

          Wir haben leider von wiberg nicht erfahren, ob er seine Scriptgeschichten im Header seines HTML-Dokuments notiert oder im body, und das kann ja gelegentlich einen Unterschied ausmachen.

          Hier nicht, onload feuert erst nach dem Body :-) Wichtig ist nur, dass die Funktion schon bekannt ist, sonst kann man keine Referenz drauf speichern.

          Ich gehe nicht davon aus, daß wibergs "init()" doppelt aufgerufen würde, wie du ganz leise zu verstehen gibst.

          Nicht doppelt.

          function foobar() { alert('Hussa!'); }
          function init() { alert('Foo'); return foobar; }
          window.onload = init();

          Anfangs wird 'Foo', onLoad 'Hussa!' ausgegeben.

          window.onload = init;

          onLoad wird 'Foo' ausgegeben.

          Ich möchte allerdings, nur um das vollständigkeitshalber zu sagen, von einem HTML-Dokument nicht unbedingt onLoad mit "lol" begrüßt werden, das ist mir zu minimalistisch *g*

          *g* :-)

          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