Thomas: Farbe eines Links per javascript ändern

Hallo zusammen,
ich bin fast am verzweifeln. Und zwar will ich mit javascript die Farbe der Links einer Webseite ändern.

Dies funktioniert auch mit dem Befehl:
   document.getElementsByTagName('body')[0].link='black';

Wenn ich aber im <head>-Tag einen Style gesetzt habe, funktioniert die Geschichte leider nicht.

Hat jemand eine Idee warum? Wie kann man das Problem umgehen?

Grüße, Thomas

Der Vollständigkeit halber noch der komplette Code (der so nicht funktioniert!):
<html>
<head>
<style type='text/css'>
<!--
a:link { color: red }
-->
</style>
<script>
<!--
function test() {
  document.getElementsByTagName('body')[0].link='black';
}
-->
</script>
</head>
<body>
<a href='hallo.htm'>hallo</a><br>
<a href='javascript:test()'>link</a>
</body>
</html>

  1. Hi,

    ich bin fast am verzweifeln. Und zwar will ich mit javascript die Farbe der Links einer Webseite ändern.

    Dies funktioniert auch mit dem Befehl:
       document.getElementsByTagName('body')[0].link='black';

    Wenn ich aber im <head>-Tag einen Style gesetzt habe, funktioniert die Geschichte leider nicht.

    Weil CSS Vorrang vor HTML-Attributen gleicher Bedeutung hat.

    Hat jemand eine Idee warum? Wie kann man das Problem umgehen?

    Über alle a-Elemente iterieren und dort die style-Eigenschaften direkt ändern.

    Andreas

  2. hallo Thomas,

    ich bin fast am verzweifeln

    nu mal langsam. wegen so 'nem unbedeutenden Fitzelchen willst doch nicht gleich inne Klapsmühle, gelle ;-)

    Und zwar will ich mit javascript die Farbe der Links einer Webseite ändern.

    Da fehlt nen Stück Erklärung: warum willst du das überhaupt, wann willst du das, und warum solls unbedingt Javascript tun? (funktionieren würde das zwar, aber mit unangemessenem Aufwand)

    Dies funktioniert auch mit dem Befehl:
       document.getElementsByTagName('body')[0].link='black';

    oha. Viel zu umständlich. Daß etwas "funktioniert" bedeutet nicht automatisch, daß das auch "korrekter Stil" ist.

    Wenn ich aber im <head>-Tag einen Style gesetzt habe, funktioniert die Geschichte leider nicht.

    Da hast du es: Was im Header-Bereich voreingestellt wurde, gilt halt für die ganze Seite und hat (mit gewissen Einschränkungen) Vorrang vor irgendwelchen Dummheiten, die dann im Dateikörper stehen könnten. Und du bist bereits auf die sehr richtige Idee gekommen, CSS dafür einzusetzen. Warum machst du nun nicht konsequent mit CSS weiter?

    Christoph S.