Simone: beim laden <div> verstecken

Hi,
Nicht Jeder hat Javascript aktiv.

Ich möchte ein div jedoch nur verstecken wenn Javascript aktiv ist.

id="layer" müste beim laden der Seite:

display: none; zugewiesen bekommen

Danke für Zeit und Hilfe
Simone

Mein Versuch:
<body onLoad="divweg()" >

<script language="JavaScript">
<!--
function divweg()
{
document.getElementById('layer').style.display = 'none';
}

function exchangeDisplay(id){
 if(document.getElementById(id).style.display == 'none')
 {
  document.getElementById(id).style.display = 'block';
 }
 else
 {
  document.getElementById(id).style.display = 'none';
 }
}

//-->
</script>

<a href="javascript:exchangeDisplay('layer')">anzeigen</a>

<div style="font-size:10px;" id="layer" >
ich bin nur unsichtbar wenn Dein Browser javascript kann!
<div>

</body>

  1. Versuch doch mal:

    document.getElementById('layer').style.visibility = 'hidden';

    So blende ich Ebenen auch bei mir aus

    Grüße
    Chris

    1. HI, Chris

      Danke für Deine Antwort.

      Habe den Code etwas modifiziert.

      Der IE und Mozilla machen keine Probleme.
      aber was machen die Anderen Browser
      Könnt Ihr das bitte mal testen, Danke

      Simone

      <body onLoad="divweg()" >

      <script language="JavaScript">
      <!--
      function divweg()
      {
      document.getElementById('layer').style.visibility='hidden';
      }

      function exchangeDisplay(id){
      var layerdetails = document.getElementById(id).style.visibility;

      if(layerdetails=="hidden"){
      document.getElementById(id).style.visibility='visible';
      }
      if(layerdetails=="visible"){
      document.getElementById(id).style.visibility='hidden';
      }
      }

      //-->
      </script>

      <a href="javascript:exchangeDisplay('layer')">anzeigen</a>

      <div style="font-size:10px;" id="layer" >
      ich bin nur unsichtbar wenn Dein Browser javascript kann!
      <div>

      </body>

      1. Hi,

        <body onLoad="divweg()" >

        Es ist allerdings eleganter, das (bereits sichtbare) Element nicht erst nach dem Laden auszublenden, sondern bevor es sichtbar ist.

        <a href="javascript:exchangeDisplay('layer')">anzeigen</a>

        Wenn ein Element nur mit JS eine Funktionalität aufweist, dann sollte das Element auch gar nicht exisiteren/anegzeigt werden, wenn diese Funktionalität gar nicht gegeben ist.

        ich bin nur unsichtbar wenn Dein Browser javascript kann!

        Es gibt auch Browser, die JavaScript können, und bei deinem Script Fehler werfen (ja, sogar Browser, die Elementeunsicthbar machen können).

        Beachte also ältere Browser, indem Du einfach dein Script/die Funktionalität mit einem "if(document.getElementById)" umklammerst.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi, Cybaer

          Danke Dir für Deine Antwort

          <body onLoad="divweg()" >

          Es ist allerdings eleganter, das (bereits sichtbare) Element nicht erst nach dem Laden auszublenden, sondern bevor es sichtbar ist.

          Das verstehe ich, jedoch fehlt mir das entsprechende Glied zur Umsetung.

          Welche Funktion kann ich nutzen um das entsprechende Div auszublenden bevor ist sichtbar wird? Und gleichzeitig zu garantieren das User ohne JavaScript den Text lesen können.
          Auf style="display: none;" möchte ich dabei verzichten.

          Simone

          1. Hi,

            Welche Funktion kann ich nutzen um das entsprechende Div auszublenden bevor ist sichtbar wird?

            keine. Du kannst allerdings ein Style-Element in den Head schreiben und hierüber eine Regel für ein Element notieren, das noch gar nicht geladen ist.

            freundliche Grüße
            Ingo

            1. Hallo!

              Bei allem Respekt zur Diskussion um getElement...

              Es geht doch darum, irgendwelchen Inhalt für Browser MIT JavaScript zu verstecken. Warum dann nicht einfach den Inhalt, den nur Besucher ohne JavaScript sehen sollen (denn das will Simone, wenn ich nicht arge Verständnisschwierigkeiten habe), in einem noscript-Bereich packen?

              Oder wird dieser Inhalt später doch für Besucher mit JS benötigt? Wenn nicht:

              <noscript>
              <div>
              Inhalt, denn nur die "mit ohne" sehen sollen...
              </div>
              </noscript>

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --

              _ - jenseits vom delirium - _
              1. echo $begrüßung;

                Es geht doch darum, irgendwelchen Inhalt für Browser MIT JavaScript zu verstecken. Warum dann nicht einfach den Inhalt, den nur Besucher ohne JavaScript sehen sollen (denn das will Simone, wenn ich nicht arge Verständnisschwierigkeiten habe), in einem noscript-Bereich packen?

                Es geht darum, den Inhalt vorläufig auszublenden und bei einer bestimmten Benutzeraktivität wieder einblenden zu können. Diese Funktionalität erfüllt zumindest der im OP enthaltene Code. Besucher ohne Javascript sollen ihn lediglich gleich angezeigt bekommen.

                echo "$verabschiedung $name";

                1. Hallo dedlfix!

                  Es geht darum, den Inhalt vorläufig auszublenden und bei einer bestimmten Benutzeraktivität wieder einblenden zu können.

                  Dann muss ich das nächste Mal aufmerksamer lesen ;)

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --

                  _ - jenseits vom delirium - _
                  1. Hi,

                    Dann muss ich das nächste Mal aufmerksamer lesen ;)

                    Zusätzlich geht es nur um Browser der 5. Generation (IE 5+, Moz, ...). JavaScript ist weitaus älter.

                    Gruß, Cybaer

                    --
                    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. Hi,

            Welche Funktion kann ich nutzen um das entsprechende Div auszublenden bevor ist sichtbar wird?

            Du kannst *direkt nach* dem DIV ein JS schreiben, das dieses ausblendet (<div><script ...> oder </div><script ...>) oder zumindest am Seitenende.
            Oder aber mit JavaScript (am einfachsten: write()) einen STYLE im HEAD erzeugen, der nichts anderes enthält (natürlich nur mit "if(document.getElementById)" geklammert ;-)).

            Es gibt natürlich noch komplexere Möglichkeiten, aber das wäre am einfachsten. ;-)

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. echo $begrüßung;

    Ich möchte ein div jedoch nur verstecken wenn Javascript aktiv ist.
    Mein Versuch: [...]

    Ja, so wie du das im weiteren beschreibst sah mein erster Versuch, diese Aufgabe zu erledigen auch aus. Wo steckt nun dein Problem dabei?

    echo "$verabschiedung $name";

  3. Hello out there!

    <script language="JavaScript">

    Den Fehler solltest du ausmerzen: <http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=JavaScript-Bereiche in HTML definieren>.

    <!--

    HTML-Kommentarzeichen sollten nicht in JavaScript stehen; das kann böse Ärger geben. Weg damit!

    function exchangeDisplay(id){

    Siehe dazu http://forum.de.selfhtml.org/archiv/2006/7/t132337/#m856382

    <a href="javascript:exchangeDisplay('layer')">anzeigen</a>

    Und dazu auch.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  4. Soweit ich  mal gehört habe, sollte man nicht mit hidden/visible arbeiten, weil einige Browser damit Probleme haben. Besser ist es die DIV nach links aus dem Fenster zu schieben.

    1. hi,

      Soweit ich  mal gehört habe, sollte man nicht mit hidden/visible arbeiten, weil einige Browser damit Probleme haben. Besser ist es die DIV nach links aus dem Fenster zu schieben.

      Du hast Quark gehört.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. Hi,

      Soweit ich  mal gehört habe, sollte man nicht mit hidden/visible arbeiten, weil einige Browser damit Probleme haben.

      Der Navigator 4.x kennt "hidden" nicht, sondern stattdessen IIRC "hide". Aber der scheitert bereits am getElementsById ... :)

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!