Karapim: onLoad Funktion mit Attributen starten lassen, aber wie??

Hi Leute,

ich habe wieder einmal ein PRoblem und hoffe hier meine Lösung zu bekommen.
Folgendes script habe ich mich aus dem Netz rauskopiert um eine Art treeview zu erreichen.
Ich weiß, dass es da bessere Methoden gibt, aber für den Anfang muss es reichen.
Bloß verstehe ich nicht die genaue Vorgehensweise.

Kann mir das jemand mal kurz erklären und sagen welchen onload-Befehl
ich im body-tag schreiben muss, damit die <div>s nicht ausgewählt geladen werden?!?!?

Dankeschön

Karapim
---------------------------------------------------------------------
<html>
<head>
<title>llinkleiste test</title>

<script language="JavaScript">
function toggle( targetId )
{
  if (document.getElementById)
  {
    var target  = document.getElementById( targetId );

if (target.style.display == "")
    {
      target.style.display = "none"
    }
    else
    {
      target.style.display = ""
    }
  }
}
</script>

</head>
<body>

<a onclick="toggle('fotos'); return false;" href="#">Fotos<br></a>
<div id="fotos">link zu foto 1<br>link zu foto 2<br>link zu foto 3<br></div>
<a onclick="toggle('fun'); return false;" href="#">Fun<br></a>
<div id="fun">link zu fun 1<br>link zu fun 2<br>link zu fun 3<br></div>

</body>
</html>

  1. Hi,

    Kann mir das jemand mal kurz erklären und sagen welchen onload-Befehl
    ich im body-tag schreiben muss, damit die <div>s nicht ausgewählt geladen werden?!?!?

    onLoad ist ein Event-Handler (kein Befehl), welcher *nach* dem vollständigen Laden der Seite feuert. Du möchtest *vorher* die <div>s unsichtbar halten, also musst Du dies entsprechend angeben.

    <script language="JavaScript">

    ERROR: Required attribute "type" missing.

    if (document.getElementById)

    Diese Prüfung besagt, dass das Script nur bei DOM-fähigen Browsern funktioniert. Alle anderen - inklusive derer, bei denen JavaScript deaktiviert wurde - kommen nicht in den Genuss Deines Menüs. Soll heißen: Dieses Script darf nur als *Alternative* gelten, es *muss* ein allgemeingültiges Original geben.

    var target  = document.getElementById( targetId );

    Hier wird ein Element im Dokument-Baum angewählt. Ohne zu prüfen, ob dieses existiert,

    if (target.style.display == "")

    wird dessen CSS-Eigenschaft "display" untersucht und ggf. verändert. Und genau diese Eigenschaft möchtest auch Du in der Vorgabe verändern, unter Beachtung nicht-JavaScript- oder -DOM-tauglicher Browser.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Moin!

      if (target.style.display == "")

      wird dessen CSS-Eigenschaft "display" untersucht und ggf. verändert. Und genau diese Eigenschaft möchtest auch Du in der Vorgabe verändern, unter Beachtung nicht-JavaScript- oder -DOM-tauglicher Browser.

      Ich möchte das aber nicht. Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern. Die jetzige Lage erlaubt immerhin, dass man zwar nichts einklappen kann, aber wenigstens an die Links kommt. Die Umstellung auf "zuerst versteckt" würde bedeuten, dass man nicht an die Links rankommt - zumindest, wenn diese Umstellung per CSS gemacht wird (per Javascript wird's ja zum Glück nicht funktionieren).

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Hi,

        Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern.

        das war mir nicht bewusst, danke für den Hinweis.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern.

          ICh weiß, dass es "schlechter" Stil ist wenn man nicht für alle
          Browser programmiert, aber dieses Thema "warum sollte man seine
          Seite für alle Browser optimieren" wollte ich jetzt nicht
          anfangen...:-)
          Es wäre nett, wenn mir jdm von euch nur sagen würde wo und wie ich die "Hauptlinks" nicht angeglickt lade...

          vielen Danke

          Gruß

          K

          1. vielen Danke

            :-)) das E ist dann wohl zuviel...

            Also nochmal..was ist DOM und was war das mit dem type??

            Danke...jetzt aber :-)

            1. Hi,

              Also nochmal..was ist DOM

              lies bitte die Antworten auch, die Dir gegeben werden. Ich habe Dir einen Link genannt, unter dem Du dies erklärt bekommst.

              und was war das mit dem type??

              Dieses Attribut ist im <script>-Tag zwingend erforderlich. Wie der Attributwert lauten muss, erfährst Du u.a. im Archiv.

              Cheatah

              --
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
          2. Hi,

            ICh weiß, dass es "schlechter" Stil ist wenn man nicht für alle
            Browser programmiert, aber dieses Thema "warum sollte man seine
            Seite für alle Browser optimieren" wollte ich jetzt nicht
            anfangen...:-)

            man kann nicht "für" eine Menge von Browsern optimieren, sondern nur gegen alle anderen. Fange also gar nicht erst mit dem Versuch an. Erstelle Deine Site so, dass sie immer und mit ausnahmsfrei jedem Client vollständig funktioniert und alle Informationen zugänglich sind - _erst dann_ kannst Du Dich bemühen, es für spezielle Browser "besser" zu machen.

            Es wäre nett, wenn mir jdm von euch nur sagen würde wo und wie ich die "Hauptlinks" nicht angeglickt lade...

            Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Ds mit dem DOM habe ich übersehen. Danke.

              Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.

              Die Angabe war für einen Ungeübten wie die Aufforderung an ein kleines Kind das das Fahrradfahren lernen soll, einfach nur das Gleichgewicht zu halten und zu stramplen.
              Ich hoffe du verstehst es nicht falsch...Ich brauche schon eine script-Angabe.

              Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!

              Also? :-)

              1. Hi,

                Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.
                Die Angabe war für einen Ungeübten wie die Aufforderung an ein kleines Kind das das Fahrradfahren lernen soll, einfach nur das Gleichgewicht zu halten und zu stramplen.

                ungefähr so war's auch gemeint. Und genau wie beim kleinen Kind laufe ich neben Dir her und halte Dich fest, wenn Du kippst. Sprich: Ich erwarte von Dir, dass Du erst mal strampelst ;-) und dort wo es hakt und Du nicht weiterkommst, frage spezifisch nach - Dir wird geholfen werden.

                Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!

                Nope, das Attribut ist immer nötig. Wo es fehlt und es trotzdem funktioniert, siehst Du eine Fehlerkorrektur.

                Cheatah

                --
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. »»Ich erwarte von Dir, dass Du erst mal strampelst ;-) und dort wo es hakt und Du nicht weiterkommst, frage spezifisch nach - Dir wird geholfen werden.

                  Ich dachte es wäre eine Detailfrage. :-)
                  Ich möchte nur wissen auf welche Art und WEise ich das onLoad setzen muss...

                  Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!

                  Wo steht das hier bei selfhtml???

                  Karapim

                  1. hi,

                    Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!
                    Wo steht das hier bei selfhtml???

                    gar nicht, weil es - wie chräcker ja schon sagte - falsch ist.

                    wie man JS richtig einbindet, steht hier http://selfhtml.teamone.de/javascript/intro.htm#javascriptbereiche und hier http://selfhtml.teamone.de/javascript/intro.htm#javascriptdateien.

                    gruss,
                    wahsaga

      2. Das heißt jetzt was? :-)

        So auf keinen Fall, und zu Beginn "versteckt" erst recht nicht, ja? :-)

        Toll... :-)

        EIne Andere Möglichkeit wäre?

        Danke

    2. Was ist DOM?

      Wolltest du mir damit unterschwellig mitteilen, dass ich es SO nicht machen soll? :-)
      Schade, kennst du denn ein gutes Script für ein Treeview?

      Wenn es so nicht funktioniert, bzw vollkommen schlecht durchdacht ist, dann werd ichs nicht machen.
      Aber sag mir bitte nur noch wo ich diese onLoad reinschreiben müsste und wie. Nur um es abzuhaken...

      Danke

      K

      1. Hi,

        Was ist DOM?

        Document Object Model, siehe http://selfhtml.teamone.de/javascript/index.htm. Es ist grundsätzlich gefährlich, Techniken einzusetzen, die man nicht grundlegend versteht - verzichte also auf Scripts aller Art, wenn Du nicht weißt, was sie tun.

        Wolltest du mir damit unterschwellig mitteilen, dass ich es SO nicht machen soll? :-)

        Ja :-) Selbst ohne die Information, die Sven uns gab.

        Schade, kennst du denn ein gutes Script für ein Treeview?

        Es ist *immer* problematisch, gerade für jene Dinge, die in jedem Fall unbedingt verfügbar zu sein haben, nicht voraussetzenbare Techniken wie JavaScript einzusetzen. Das beste Script ist also per definitionem eines, das keines ist. Verzichte bei solchen Dingen wie einer Navigation oder Kontaktmethoden auf JavaScript und ähnliches.

        Aber sag mir bitte nur noch wo ich diese onLoad reinschreiben müsste und wie. Nur um es abzuhaken...

        onLoad steht üblicherweise im <body>, wäre theoretisch aber auch in anderen Elementen denkbar. Es bedeutet: Führe den enthaltenen JavaScript-Code aus, sowie das Element und dessen Inhalte vollständig geladen sind.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo,

        nur als Tip:
        Du kannst mit <noscript> ... </noscript> eine auf html basierende Alternative zur Javascript-Navigation anbieten, die nur dann angezeigt wird, wenn der Besucher kein Javascript bzw. JS abgeschaltet hat.

        Gruß,     Jürgen

        --
        <img src="http://www.uni-muenster.de/Physik/AP/Purwins/leute/Berkemeier/Plasmakugel.gif" border="0" alt="">