Z4ppy: Seite nur bei vorhandenem JavaScript anzeigen

Hallo, ihr Profis ^^

Ich versuche derzeit, eine Seite bei vorhandenem JavaScript anzuzeigen. Nach meinen Überlegungen müsste das mit dem folgenden Code klappen:

<html>
 <head>
  <!-- Head -->
  <script type="text/javascript">
   function show() {
     document.container.style.display="block";
   }
  </script>
 </head>
 <body onLoad="show();">
  <div name="container" style="display:none;">
   <!-- Inhalt -->
  </div>
  <noscript>
   This page is not usable without JavaScript.
  </noscript>
 </body>
</html>

Wenn ich nun JS an habe, krieg ich aber nur eine weisse Seite. Wo liegt der Fehler?

MfG Z4ppy

  1. Hallo, Du immerhin zu JavaScript Fortgeschrittener!

    Bei der Adressierung vom container. Versuche statt "document.container" mal "document.getElementById('container')" - das sollte besser gehen.

    Gruß, LX

    --
    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: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo, Du immerhin zu JavaScript Fortgeschrittener!

      Bei der Adressierung vom container. Versuche statt "document.container" mal "document.getElementById('container')" - das sollte besser gehen.

      Gruß, LX

      Gerade getestet, ebenfalls eine weisse Seite :(

      MfG Z4ppy

      1. Hallo,

        Gerade getestet, ebenfalls eine weisse Seite :(

        Wenn kein Inhalt drin is...

        mfg, Flo

        --
        sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        1. Hallo,

          »» Gerade getestet, ebenfalls eine weisse Seite :(
          Wenn kein Inhalt drin is...

          mfg, Flo

          Für wie blöd hältste mich eigentlich? ^^
          Ich hab das hier rauskommentiert, da steht natürlich was ;)

          MfG Z4ppy

          1. Hallo,

            | | Gerade getestet, ebenfalls eine weisse Seite :(
            | Wenn kein Inhalt drin is...

            |

            Für wie blöd hältste mich eigentlich? ^^
            Ich hab das hier rauskommentiert, da steht natürlich was ;)

            kann ich doch nicht wissen. Hast du firebug? wird die funktion aufgerufen? lass dir danach mal container.style.display ausgeben, was da drinnensteht...

            mfg, Flo

            --
            sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
    2. Hallo,

      Bei der Adressierung vom container. Versuche statt "document.container" mal "document.getElementById('container')" - das sollte besser gehen.

      ja, aber nur wenn das Element auch eine ID hat. Im Codebeispiel von Z4 hat es nämlich nur ein name-Attribut.

      So long,
       Martin

      --
      Ungeschehene Ereignisse können einen katastrophalen Mangel an Folgen nach sich ziehen.
        (Unbekannter Politiker)
      1. Hallo,

        »» Bei der Adressierung vom container. Versuche statt "document.container" mal "document.getElementById('container')" - das sollte besser gehen.

        ja, aber nur wenn das Element auch eine ID hat. Im Codebeispiel von Z4 hat es nämlich nur ein name-Attribut.

        So long,
        Martin

        Nunja, ich hab jetzt also folgenden Code:

        <html>
         <head>
          <title>Loginsystem</title>
          <script type="text/javascript">
           function show() {
             document.getElementByID('container').style.display="block";
           }
          </script>
         </head>
         <body onLoad="show();">
          <div id="container" style="display:none;">
           <!-- Inhalt, nicht leer :P -->
          </div>
          <noscript>
           This page is not usable without JavaScript.
          </noscript>
         </body>
        </html>

        Dennoch wird nix angezeigt...

        MfG Z4ppy

        1. Hallo,

          document.getElementByID('container').style.display="block";

          ^ Felher: nicht ID sonern Id
          mfg, Flo

          --
          sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
          1. Hallo,

            »»      document.getElementByID('container').style.display="block";
                                         ^ Felher: nicht ID sonern Id
            mfg, Flo

            Danke, jetzt gehts :) Jaja, was einmal Shift gedrückthalten so alles auslösen kann ^^

            MfG Z4ppy

            1. » »»      document.getElementByID('container').style.display="block";
              »                              ^ Felher: nicht ID sonern Id
              » mfg, Flo

              Danke, jetzt gehts :) Jaja, was einmal Shift gedrückthalten so alles auslösen kann ^^

              Übrigens ein Fehler den du Problemlos mit Hilfe der Fehlerkonsole im Firefox selbst gefunden hättest.

              Struppi.

        2. Hi,

          document.getElementByID('container').style.display="block";
          Dennoch wird nix angezeigt...

          schau dir nochmal an, wie die Funktion wirklich heißt. Schau ganz genau hin.
          Und gewöhne dir bitte einen sinnvollen Zitierstil an, anstatt einfach das komplette Vorposting zu wiederholen. Danke!

          So long,
           Martin

          --
          Man sollte immer wissen was man sagt
           - aber auf keinen Fall alles sagen, was man weiß.
          1. Hallo,

            ich war früher :)

            mfg, Flo

            --
            sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
          2. Und gewöhne dir bitte einen sinnvollen Zitierstil an, anstatt einfach das komplette Vorposting zu wiederholen. Danke!

            Ich werds versuchen :)

            MfG Z4ppy

        3. document.getElementByID('container').style.display="block";

          Dennoch wird nix angezeigt...

          Bei mir funzt es wenn ich
          getElementByID
          zu
          getElementById
          ändere

          mfg Beat

          --
          Woran ich arbeite:
                           /|
            <°)))o><   __ / |    /|
                      /__\ _|___/ |     ><o(((°>
                     OvVVvO    __ |        ><o(((°>
          <°)))o><  /v    v\/  |
           <°)))o>< ^    ^/_/_         ><o(((°>
                     ^^^^/___/
                      ----            ><o(((°>
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
          1. Hallo,

            und du bist der dritte...

            mfg, Flo

            --
            sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        4. <div id="container" style="display:none;">
             <!-- Inhalt, nicht leer :P -->
            </div>
            <noscript>
             This page is not usable without JavaScript.
            </noscript>

          Was meinst du, passiert, wenn der Client weder CSS noch JavaScript kennt?

          --
          Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
          Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
  2. @@Z4ppy:

    <body onLoad="show();">

    Warum willst du die Nutzer so lange auf eine Anzeige warten lassen? Das geht viel schneller: Sehr sehr schnelle Seiten - Website Performance Best Practice - Teil 2

    s.a. Anmerkungen von Cheatah und ChrisB

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  3. Moin Moin!

    Warum auch immer Du Dir mit Gewalt in den Fuß schießen willst ...

    Warum erzeugst Du so viel Zeug, nur um es gleich wieder zu verstecken?

      
    <!doctype html>  
    <html>  
    <head>  
    <script src="content.js" type="text/javascript"></script>  
    <title>Loch in den Fuß</title>  
    </head>  
    <body>  
    <p>Ohne Javascript behandle ich Dich wie den letzten Dreck!</p>  
    </body>  
    </html>  
    
    

    Das ist schlank und führt ohne JS exakt zum gewünschten Ergebnis. Mit JS wird content.js geladen, das zunächst das Body-Element von allen Kindern befreit und dann den gewünschten Inhalt per DOM-Methoden oder notfalls per innerHTML einbaut. Ganz grob und nicht getestet:

      
    /* content.js */  
    window.onload=function() {  
      var b=document.getElementsByTagName('body');  
      if (b) {  
        b[0].innerHTML='<h1>Oh weh!</h1><p>Nur für JS-Junkies!</p>';  
      }  
    }  
    
    

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. @@Alexander (HH):

      Mit JS wird content.js geladen

      Aber zu spät, wie ich schon sagte.

      Erst wird kurzzeitig „Ohne Javascript behandle ich Dich wie den letzten Dreck!“ angezeigt, um dann gegen „Oh weh! Nur für JS-Junkies!“ ausgetauscht zu werden‽ Ein äußerst unschöner Effekt.

      Live long and prosper,
      Gunnar

      --
      Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
      1. Moin Moin!

        Erst wird kurzzeitig „Ohne Javascript behandle ich Dich wie den letzten Dreck!“ angezeigt, um dann gegen „Oh weh! Nur für JS-Junkies!“ ausgetauscht zu werden‽ Ein äußerst unschöner Effekt.

        Hmmm, richtig. Aber lösbar:

          
        <!doctype html>  
        <html>  
        <head>  
        <script src="content.js" type="text/javascript"></script>  
        <title>Loch in den Fuß</title>  
        </head>  
        <body>  
        <script type="text/javascript">/* dummy */</script>  
        <noscript>  
        <p>Ohne Javascript behandle ich Dich wie den letzten Dreck!</p>  
        </noscript>  
        </body>  
        </html>  
        
        

        (Das Dummy-Script-Tag vor dem Noscript-Tag ist für irgendeinen seltendämlichen und mittlerweile völlig veralteten Browser, der <noscript> nur dann verdaut, wenn ihm ein <script> vorangeht. Ich meine, der Opera hätte so einen Unsinn mal gemacht.)

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".