Therese: warum funktioniert document.getElementById mit bold nicht?

Hallo

ich möchte ein menü erstellen, bei dem der gerade aktive menülink fett wird.  ich habe ein script, mit dem ich die farbe ändern kann, nur leider schaff ich es nicht, es fett werden zu lassen.
hier das script:

<script language="javascript">

function makered(){
document.getElementById("link1").style.color="#d6d5d5";
document.getElementById("link2").style.color="#d6d5d5";
document.getElementById("link3").style.color="#d6d5d5";
document.getElementById("link4").style.color="#d6d5d5";
document.getElementById("link5").style.color="#d6d5d5";
document.getElementById("link6").style.color="#d6d5d5";
document.getElementById("link7").style.color="#d6d5d5";
document.getElementById("link8").style.color="#d6d5d5";
document.getElementById("link9").style.color="#d6d5d5";
document.getElementById("link10").style.color="#d6d5d5";
}

</script>

hat jemand da ne lösung für mich?

gruß,
therese

  1. Hi,

    ich habe ein script, mit dem ich die farbe ändern kann, nur leider schaff ich es nicht, es fett werden zu lassen.

    ich sehe keinen Versuch, dies zu schaffen. So ist es nicht nur schwer, einen Fehler zu finden, sondern unmöglich.

    <script language="javascript">

    Das type-Attribut ist required. Und bitte kommentiere Code, der nicht ggf. (nämlich wenn der Client kein <script> kennt) angezeigt werden soll, aus.

    function makered(){
    document.getElementById("link1").style.color="#d6d5d5";

    _Vorher_ prüfen, ob document.getElementById bekannt ist. Sonst gibt's potentiell Fehler.

    Cheatah

    1. Moin!

      Hah, ich darf doch tatsaechlich Cheatah korrigieren *fg*

      Das type-Attribut ist required. Und bitte kommentiere Code, der nicht ggf. (nämlich wenn der Client kein <script> kennt) angezeigt werden soll, aus.

      Das W3C ist anderer Ansicht: Zumindest in XHTML sollte man das nicht machen, da sonst Parser diese Abschnitte auslassen koennen. Siehe auch http://www.w3.org/TR/xhtml1/#guidelines.

      Also ist die pauschalisierte Aussage, so nicht richtig. Konqueror z.B. verhaelt sich zum Beispiel auch so, dass er eingebundene Stylesheets nicht benutzt, falls diese innerhalb von HTML-Kommentare stehen. Ich gehe mal davon aus, dass dies bei Scripts aehnlich sein wird. Btw: Ich finde dieses Verhalten auch sehr logisch.

      Viele Gruesse,

      Einbecker

      1. hallo,

        also, ich muss leider zugeben, dass ich nicht besonders viel von html verstehe und komme gerade so um die runden mit dem was ich tue.  deshalb ist das was du gerade geschrieben hast, für mich leider völlig unverständlich.  ebenso die antwort von Cheatah.  wenn ihr lust habt, könnt ihr das ja noch mal etwas einfacher erklären.  wenn nicht, ist auch nicht so schlimm.  auf jeden fall danke!

        gruß,
        therese

        1. Moin!

          Es ging nur darum, ob man Skripts mit Kommentaren umschliessen sollte, weil einige Clients, die kein <script> kennen, diese sonst rendern, oder nicht.

          Viele Gruesse,

          Einbecker

      2. Hi,

        Hah, ich darf doch tatsaechlich Cheatah korrigieren *fg*

        Du meinst, diesmal war niemand schneller als Du? ;-)

        Das W3C ist anderer Ansicht: Zumindest in XHTML

        Ich bezweifele ernsthaft, dass hier XHTML gemeint ist.

        sollte man das nicht machen, da sonst Parser diese Abschnitte auslassen koennen.

        Ja. Es ist gut möglich (bzw. extrem wahrscheinlich), dass ein X(HT)ML-Parser nicht fälschlicherweise den Inhalt eines <script>- o.ä. Blockes anzeigen wird. Bei HTML sieht die Sache anders aus. Da muss davon ausgehen, dass das <script> bzw. </script> bei Unkenntnis schlicht ignoriert werden wird, nicht aber dessen Inhalt. Hier sind HTML-Kommentare dann zwingend nötig, um nicht den Quellcode (in miserabler Form, es fehlen ja schließlich die HTML-Formatierungselemente) auszugeben.

        Siehe auch http://www.w3.org/TR/xhtml1/#guidelines.

        "This appendix is informative."

        Also ist die pauschalisierte Aussage, so nicht richtig.

        Für HTML schon ;-) Zumindest, wenn man nicht davon ausgeht, dass der Client HTML/4.01 beachtet, wenn er HTML/4.01 liest (_falls_ er es liest).

        Konqueror z.B. verhaelt sich zum Beispiel auch so, dass er eingebundene Stylesheets nicht benutzt, falls diese innerhalb von HTML-Kommentare stehen.

        http://www.w3.org/TR/html4/present/styles.html#edef-STYLE sagt:
        "It is an error to render the content as part of the document's text."

        An gleicher Stelle wird aber auch auf http://www.w3.org/TR/html4/present/styles.html#hiding verwiesen:
        "This example illustrates for CSS how to comment out the content of STYLE elements to ensure that older, non-conforming user agents will not render them as text."

        Ergo: Wenn man von einem HTML/4.01-Client ausgeht, sind HTML-Kommentare überflüssig. Geht man von einem HTML-Client aus, dann nicht.

        Ich gehe mal davon aus, dass dies bei Scripts aehnlich sein wird.

        An verschiedenen Stellen des W3C werden <script> und <style> im selben Atemzug genannt. Da ich zu <script> nichts entsprechendes finde, nehme ich einfach dies als Bestätigung Deiner Annahme.

        Btw: Ich finde dieses Verhalten auch sehr logisch.

        "Im Prinzip ja."

        Cheatah

        1. Moin!

          Hah, ich darf doch tatsaechlich Cheatah korrigieren *fg*

          Du meinst, diesmal war niemand schneller als Du? ;-)

          Nicht mal der TOD ist schneller als ich ;-)

          Das W3C ist anderer Ansicht: Zumindest in XHTML

          Ich bezweifele ernsthaft, dass hier XHTML gemeint ist.

          Ist immer die Frage, wie abstrakt man Sachen angeht ;-) XHTML ist uebrigens auch HTML, siehe W3C, es ist die konsequente Weiterentwicklung - deswegen finde ich die strikte Trennung zwischen X und HTML etwas schlecht...

          sollte man das nicht machen, da sonst Parser diese Abschnitte auslassen koennen.

          Ja. Es ist gut möglich (bzw. extrem wahrscheinlich), dass ein X(HT)ML-Parser nicht fälschlicherweise den Inhalt eines <script>- o.ä. Blockes anzeigen wird.

          Ist davon auszugehen ;-)

          Bei HTML sieht die Sache anders aus. Da muss davon ausgehen, dass das <script> bzw. </script> bei Unkenntnis schlicht ignoriert werden wird, nicht aber dessen Inhalt. Hier sind HTML-Kommentare dann zwingend nötig, um nicht den Quellcode (in miserabler Form, es fehlen ja schließlich die HTML-Formatierungselemente) auszugeben.

          Oder das ganze gleich umgehen und in eine externe Datei packen.

          Siehe auch http://www.w3.org/TR/xhtml1/#guidelines.

          "This appendix is informative."

          Ja. Und? ;-) Informationen sind fast nie schlecht ;-)

          Also ist die pauschalisierte Aussage, so nicht richtig.

          Für HTML schon ;-) Zumindest, wenn man nicht davon ausgeht, dass der Client HTML/4.01 beachtet, wenn er HTML/4.01 liest (_falls_ er es liest).

          Nun ja, fuer HTML bis HTML/4.01 schon, wuerde ich sagen - XHTML ist immer noch HTML ;-)

          Konqueror z.B. verhaelt sich zum Beispiel auch so, dass er eingebundene Stylesheets nicht benutzt, falls diese innerhalb von HTML-Kommentare stehen.

          Ich gehe mal davon aus, dass dies bei Scripts aehnlich sein wird.

          An verschiedenen Stellen des W3C werden <script> und <style> im selben Atemzug genannt. Da ich zu <script> nichts entsprechendes finde, nehme ich einfach dies als Bestätigung Deiner Annahme.

          Danke - Es ging aber um Konqueror und wie der sich dabei verhaelt - und es deswegen schon auf HTML-ohne-X-Seiten nicht das beste ist, Kommentare so zu benutzen.

          Btw: Ich finde dieses Verhalten auch sehr logisch.

          "Im Prinzip ja."

          ;-)

          Viele Gruesse,

          Einbecker

          1. Hi,

            Nicht mal der TOD ist schneller als ich ;-)

            SCHNELLER ALS ICH IST ... äh, ich meine... schneller als TOD ist niemand :-)

            Ist immer die Frage, wie abstrakt man Sachen angeht ;-)

            Ja. Pragmatisch oder praktisch, das ist hier die Frage.

            "Sein oder nicht sein - nicht zutreffendes bitte streichen!" ;-)

            XHTML ist uebrigens auch HTML,

            XHTML ist noch HTML, aber schon XML.

            deswegen finde ich die strikte Trennung zwischen X und HTML etwas schlecht...

            Richtig. Aber solange man HTML schreibt - egal ob es nun mit "X" irgendwo notiert wurde oder nicht - sollte man an _alle_ HTML-tauglichen Clients denken.

            Oder das ganze gleich umgehen und in eine externe Datei packen.

            Das ist nicht immer sinnvoll oder möglich. Denk nur an <script src> mit einem alternativen Low-Standard-Code im CDATA, der für den Fehlerfall und JavaScript-1.0-Clients gilt.

            "This appendix is informative."
            Ja. Und? ;-) Informationen sind fast nie schlecht ;-)

            *g* :-)

            Cheatah

    2. »hi

      Und bitte kommentiere Code, der nicht ggf. (nämlich wenn der Client kein <script> kennt) angezeigt werden soll, aus.

      welche da wären Netscape 1.0, MSIE 2.0 und Mosaic - heute kennt JEDER Broser diese Tags, auch wenn er noch lange kein JS kann, eben um nicht mehr von diesem Kommentar abhängig zu sein. Wenn du mir einen Browser zeigst, der da tatsächlich Probleme hat, sag' bescheid!
      Etwas anders sieht's übrigens bei <style> aus, da dass Netscape bis Version 3 noch unbekannt ist (die ja durchaus noch hin und wieder mal auftaucht).

      Grüße aus Lübeck

      Kai

      1. Hi,

        Und bitte kommentiere Code, der nicht ggf. (nämlich wenn der Client kein <script> kennt) angezeigt werden soll, aus.

        welche da wären Netscape 1.0, MSIE 2.0 und Mosaic - heute kennt JEDER Broser

        ich rede von Clients, nicht von Browsern. Zudem hast Du vermutlich nur an graphische Browser gedacht, oder?

        Cheatah

        1. hi

          ich rede von Clients, nicht von Browsern. Zudem hast Du vermutlich nur an graphische Browser gedacht, oder?

          nö, auch lynx und co ist bekannt, dass <script> und <style> nix zu redern sind.
          In XML ist dann übrigens eine Klammer mit <[CDATA[ o.ä. vorgesehen - zu geht's dann mit ]]>

          Grüße aus Lübeck

          Kai

          1. Hi,

            ich rede von Clients, nicht von Browsern. Zudem hast Du vermutlich nur an graphische Browser gedacht, oder?

            nö, auch lynx und co

            wer ist "co"? Sämtliche im Einsatz befindlichen Suchmaschinen-Robots und andere Scripts? Außerdem: lynx ist hochmodern - diverse Blindenbrowser u.ä. nicht unbedingt.

            In XML

            Siehe </?m=64628&t=11650> :-)

            Cheatah

  2. Hoi,

    ich möchte ein menü erstellen, bei dem der gerade aktive menülink
    fett wird.  ich habe ein script, mit dem ich die farbe ändern
    kann, nur leider schaff ich es nicht, es fett werden zu lassen.
    hier das script:

    Auch, wenn du nicht gesagt hast, wo dein Problem ist, werd ich dir die
    Loesung sagen:

    document.getElementById("link1").style.color="#d6d5d5";

    document.getElementById('link1').style.fontWeight = "bold";

    Gruesse,
     CK

    1. Also, mein problem besteht darin, dass die aktiven links nicht fett werden.  leider funktioniert deine lösung auch nicht.  keine ahnung wieso, weil es mir eigentlich richtig erscheint.  schade!
      aber trotzdem vielen dank!

      gruß,
      therese

      1. Moin!

        1. Was meinst Du mit "aktiv"? Der Link, ueber den Du mit der Maus faehrst? Dann ist die Pseudoklasse a:hover dein Freund.

        2. Du musst das Skript schon irgendwie aufrufen, sonst geht das nicht - schau Dir mal onMouseOver (fuer Gross/Kleinschreibung keine Haftung) an.

        3. Die beiden Punkte 1 & 2 sind unabhaengig - Wenn 1 passt, dann brauchst Du 2 nicht mehr. Allgemein gesagt sei aber, dass Du versuchen solltest, noch einmal mehr in SelfHTML zu lesen, denn dort findet man eigentlich zu fast allem eine Antwort ;-)

        Viele Gruesse,

        Einbecker

        1. hallo,

          der link soll fett werden, sobald man ihn anklickt und dann auch so bleiben, bis man ein anderen menüpunkt wählt.  man wählt quasi einen menüpunkt und in einem anderen frame öffnet sich ein fenster mit dem inhalt zu dem menüpunkt.  damit man weiss, bei welchem menüpunkt man sich befindet, soll dieser fett sein.  in SELFHTML hab ich schon gesucht, nur leider nichts dazu so richtig was gefunden.  immer nur einen farbwechsel aber kein fett werden.  aber ich werd nochmal schauen, irgendwo muss das ja stehen und schließlich auf funktionieren.

          einen sonnigen gruß aus dem norden,
          therese

          1. Hoi,

            der link soll fett werden, sobald man ihn anklickt und dann auch so
            bleiben, bis man ein anderen menüpunkt wählt.

            Da wirst du dir schon einen geeigneten Algorithmus ueberlegen muessen.
            Z. B. kannst du ja die Links in einem Array speichern und dann eine
            globale Variablen umsetzen, wenn ein Link geklickt wird (Stichwort:
            onClick).

            in SELFHTML hab ich schon gesucht, nur leider nichts dazu so
            richtig was gefunden.

            In SELFHTML steht nur das notwendige Wissen. Anwenden musst du es
            selber.

            Gruesse,
             CK

            1. hallo,

              hat doch geklappt mit dem style.fontweight:"bold"!  hatte es falsch eingesetzt, ich blödi!  also, vielen dank und noch einen schönen sonnentag!

              gruß,
              therese