Garfield: Galerie mit und ohne Javascript realisieren

Ich möchte gerne eine Galerie so realisieren, dass jemand, der Javascript aktiviert hat, durch klick auf die Buttons über Javascript die anderen Bilder reinladen kann.
Ist kein Javascript aktiviert, soll das ganze über HTML-Seiten auch möglich sein.

In der Realisierung dieser Funktionen, sehe ich jetzt kein größeres Problem. Allerdings die Verbindung dieser zwei Zugriffe.
Meine Idee war jetzt, dass ich die Homepage immer so abschicke, dass sie für diejenigen ohne Javascript funktioniert. Danach wird dann mit der onLoad-Funktion im Body-Tag der Quelltext an der Stelle, wo Bilder und Buttons eingeblendet werden, so verändert, dass jetzt alles mit Javascript funktioniert.

In meinen Augen ist das eigentlich eine gute Herangehensweise an die Problematik Javascript Ja/Nein. Oder seht ihr da irgendwelche Probleme?

  1. Lieber Garfield,

    In meinen Augen ist das eigentlich eine gute Herangehensweise an die Problematik Javascript Ja/Nein. Oder seht ihr da irgendwelche Probleme?

    kein Problem. Finde ich gut.

    War das das, was Du wissen wolltest?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Jup, genau das will ich wissen.

      Es könnte ja sein, dass hier jemand irgendwie ein Problem darin sieht. Das einzige, was ich mir da vorstellen könnte, ist dass jemand, der Javascript aktiviert hat, ne halbe Sekunde warten muss, bis 'seine' Seite geladen ist...

      1. Hallo,

        Es könnte ja sein, dass hier jemand irgendwie ein Problem darin sieht.

        nö, ich finde auch, das ist der optimale Ansatz.

        Das einzige, was ich mir da vorstellen könnte, ist dass jemand, der Javascript aktiviert hat, ne halbe Sekunde warten muss, bis 'seine' Seite geladen ist...

        In der Zeit kann er sich ja schon das Bild ansehen!

        So long,
         Martin

        --
        Dieser Satz wurde in mühsamer Kleinstarbeit aus einzelnen Wörtern zusammengesetzt.
          (Hopsel)
  2. Hi,

    Meine Idee war jetzt, dass ich die Homepage immer so abschicke, dass sie für diejenigen ohne Javascript funktioniert. Danach wird dann mit der onLoad-Funktion im Body-Tag der Quelltext an der Stelle, wo Bilder und Buttons eingeblendet werden, so verändert, dass jetzt alles mit Javascript funktioniert.

    An sich eine gute Idee, nur würde ich anstatt des onload Events lieber ein anderes Event nehmen, genauer gesagt "DOMContentLoaded" (gecko). Für andere Browser gibts alternative Lösungswege / events.

    onload feuert nämlich erst, wenn alles geladen ist. d.h. erst dann, wenn alle Bilder (Thumbnails?) geladen sind. Die vorgeschlagene Alternative schon dann, wenn das Document geladen ist, was ja für DOM Operationen mit JavaScript ausreicht.

    Gruß!

    1. Hallo Christian!

      onload feuert nämlich erst, wenn alles geladen ist. d.h. erst dann, wenn alle Bilder (Thumbnails?) geladen sind.

      Das ist meines Wissens nach falsch. onload feuert, wenn der DOM-Baum vollständig aufgebaut ist, ob Bilder tatsächlich geladen sind, spielt dabei keine Rolle.

      Gruß Uwe

      1. Liebe(r) amolip,

        onload feuert nämlich erst, wenn alles geladen ist. d.h. erst dann, wenn alle Bilder (Thumbnails?) geladen sind.

        Das ist meines Wissens nach falsch. onload feuert, wenn der DOM-Baum vollständig aufgebaut ist, ob Bilder tatsächlich geladen sind, spielt dabei keine Rolle.

        nach meiner Erfahrung feuert onload tatsächlich erst, wenn alle Resourcen (Bilder, CSS-Dateien etc.) geladen wurden (oder eine Fehlermeldung erhalten haben).

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo Felix!

          nach meiner Erfahrung feuert onload tatsächlich erst, wenn alle Resourcen (Bilder, CSS-Dateien etc.) geladen wurden (oder eine Fehlermeldung erhalten haben).

          Kann das vielleicht noch jemand bestätigen. Aber ihr werdet schon recht haben. Ich arbeite gerade an einer "Bildergeschichte" und hab da wohl bisher einen ganz, ganz blöden Gedankenfehler gemacht. Ich füge die img-Elemente (nach dem onload) per DOM ein und onload kann ja nicht wissen, dass da noch was kommt. Ich Depp :-)

          Gruß Uwe

          1. Hi,

            Kann das vielleicht noch jemand bestätigen. Aber ihr werdet schon recht haben. Ich arbeite gerade an einer "Bildergeschichte" und hab da wohl bisher einen ganz, ganz blöden Gedankenfehler gemacht. Ich füge die img-Elemente (nach dem onload) per DOM ein und onload kann ja nicht wissen, dass da noch was kommt. Ich Depp :-)

            < http://developer.mozilla.org/en/docs/Gecko-Specific_DOM_Events>

            [...], but unlike "load", does not wait till all images are loaded.

            Gruß!

    2. Moin.

      An sich eine gute Idee, nur würde ich anstatt des onload Events lieber ein anderes Event nehmen, genauer gesagt "DOMContentLoaded" (gecko). Für andere Browser gibts alternative Lösungswege / events.

      Für den IE gibt es Workarounds über <script defer ...> und doScroll().

      Folgender naive Ansatz scheint bei meinen Tests ebensogut zu funktionieren:

        
      (function() {  
       try {  
        document.body.appendChild(document.createTextNode(''));  
       } catch(e) {  
        setTimeout(arguments.callee, 100);  
        return;  
       }  
       // do stuff after DOM tree is loaded  
      })();  
      
      

      Laut Diego Perini (letzte Nachricht) klappt das im IE aber nicht zuverlässing. Weiß jemand näheres darüber?

      Christoph

      1. Moin.

        Hab das ganze noch weiter vereinfacht. In meinen Versionen von FF, IE und Opera bin ich bisher auf keinerlei Probleme gestoßen. Wäre nett, wenn das noch andere testen können...

          
        (function() {  
         if(document.body && document.body.lastChild) { /* do stuff */ }  
         else setTimeout(arguments.callee, 100);  
        })();  
        
        

        Christoph

  3. Hi!

    schau dir mal folgendes Konzept an.

    Annabella