Signatur
Beschreibung
document.linkColor ist ein Überbleibsel aus der Frühzeit des Webs. Die Eigenschaft ist direkt mit dem veralteten HTML-Attribut link des <body>-Elements verknüpft. Lesen gibt den Wert dieses Attributs als Zeichenkette zurück. Schreiben setzt das Attribut <body link="…">. Das wirkt sich auf alle <a href>-Links aus, die noch nicht besucht wurden und für die keine CSS-Regel eine eigene Farbe festlegt.
Als Wert sind Farbnamen ("red") oder Hex-Werte ("#0000ee") üblich. Hat <body> kein link-Attribut oder gibt es noch kein <body> (etwa bei einem Skript im <head>), liefert die Eigenschaft eine leere Zeichenkette "".
Verwendet wird die Eigenschaft heute fast nur noch in altem Code oder bei der Wartung von Legacy-Seiten. In neuem Code sollte man Linkfarben immer mit CSS festlegen, z. B. mit den Pseudoklassen :link, :visited, :hover und :active oder mit benutzerdefinierten Eigenschaften (CSS-Variablen).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | "" | Nur beim Setzen: eine Farbangabe als Zeichenkette, z. B. "blue" oder "#0645ad". Der Wert wird unverändert in das link-Attribut von <body> geschrieben. |
Rückgabewert
link-Attributs von document.body. Ist das Attribut nicht gesetzt oder gibt es kein <body>, ist das Ergebnis "". Der Wert wird so zurückgegeben, wie er gesetzt wurde. Er wird also nicht in die tatsächlich berechnete Farbe umgerechnet.Beispiele
Linkfarbe lesen und setzen
// Ausgangslage: <body> ohne link-Attribut
console.log(JSON.stringify(document.linkColor));
document.linkColor = '#0645ad';
console.log(document.linkColor);
console.log(document.body.getAttribute('link'));
Zusammenhang mit dem body-Attribut
// Das Attribut direkt setzen wirkt genauso
document.body.setAttribute('link', 'green');
console.log(document.linkColor);
// Attribut entfernen → Standardfarbe des Browsers
document.body.removeAttribute('link');
console.log(JSON.stringify(document.linkColor));
Legacy-Code auf CSS umstellen
// Alt (veraltet):
// document.linkColor = 'crimson';
// Modern: Farbe über eine CSS-Variable steuern
const style = document.createElement('style');
style.textContent = `
a:link { color: var(--link-color, #0645ad); }
a:visited { color: var(--visited-color, #0b0080); }
`;
document.head.append(style);
const setLinkColor = (color) =>
document.documentElement.style.setProperty('--link-color', color);
setLinkColor('crimson');
console.log(getComputedStyle(document.documentElement).getPropertyValue('--link-color'));
Aufruf vor dem Vorhandensein von <body>
// Skript im <head>, document.body ist noch null
console.log(document.body); // null
document.linkColor = 'red'; // keine Wirkung
console.log(JSON.stringify(document.linkColor));
// Wichtig · Fallstricke
- Veraltet: Die Eigenschaft ist nicht mehr Teil des empfohlenen Standards und steht nur noch aus Kompatibilitätsgründen im HTML-Standard (Abschnitt „obsolete features“). Die Browser unterstützen sie weiterhin, in neuem Code sollte man aber CSS verwenden (
a:link { color: … }). - CSS hat Vorrang: Das
link-Attribut wirkt wie eine CSS-Regel mit sehr geringer Priorität. Jede Autoren-Regel füraodera:linküberschreibt es. Deshalb scheint das Setzen vonlinkColoroft „nichts zu tun“. - Kein
<body>: Vor dem Parsen von<body>und in Framesets gibt die Eigenschaft""zurück, und Zuweisungen werden ignoriert. - Keine Normalisierung: Zurückgegeben wird der Rohwert des Attributs, nicht die berechnete Farbe. Die tatsächliche Farbe liefert
getComputedStyle(link).color. - Besuchte und aktive Links werden über die ebenfalls veralteten Eigenschaften
vlinkColorundalinkColorgesteuert.