Textfarbe eines Links mit JavaScript erkennen
Chrissy
- javascript
Hallo,
leider habe ich über die SuFu nichts passendes gefunden, daher hier meine Frage:
Ich habe eine Seite mit ganz vielen Links. Über eine CSS Datei werden die Farben definiert:
.sl{
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
color: yellow;
text-decoration : none;
}
.sl:visited {
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
color: red;
text-decoration : underline;
}
Alle Links bekommen eine eindeutige ID:
<div id="SL1" style="display:block;" align="center">
<a href="link1.php" id="Link1" target="_blank" class="sl">Link 1</a>
</div>
<div id="SL2" style="display:block;" align="center">
<a href="link2.php" id="Link2" target="_blank" class="sl">Link 2</a>
</div>
Wenn jetzt ein User auf einen Link geklickt hat, wird dieser beim erneuten Seitenaufruf rot. Jetzt möchte ich mit einer JavaScript-Funktion alle Links durchgehen und alle die, die rot sind, unsichtbar machen -> dafür würde dann die Eigenschaft display im div-Tag auf hidden gesetzt. Das geht auch. Wie erkenne ich jetzt aber, ob der Link schon angeklickt wurde?
Mein Versuch:
function AngeklickteLinksEntfernen(start, ende) {
for (i=start; i<=ende; i++) {
alert(document.getElementById("Link" + i).text.color);
}
}
Vielen Dank schon mal für eure Hilfe!
Mfg. Christian
Wenn jetzt ein User auf einen Link geklickt hat, wird dieser beim erneuten Seitenaufruf rot. Jetzt möchte ich mit einer JavaScript-Funktion alle Links durchgehen und alle die, die rot sind, unsichtbar machen -> dafür würde dann die Eigenschaft display im div-Tag auf hidden gesetzt. Das geht auch. Wie erkenne ich jetzt aber, ob der Link schon angeklickt wurde?
Offensichtlich wirst du das nur über die Browserhistory erfahren.
Warum setzt du denn nicht deinen Wunsch direkt im CSS um?
a:visited{display:none}
Mein Nonsense-Detector schlägt im übrigen Alarm. Guess why.
mfg Beat
Offensichtlich wirst du das nur über die Browserhistory erfahren.
Warum setzt du denn nicht deinen Wunsch direkt im CSS um?
a:visited{display:none}Mein Nonsense-Detector schlägt im übrigen Alarm. Guess why.
Danke für die Antwort! Das ist mir dann nach einigem Rätsenl auch mal eingefallen...
Aber um dem Detector mal den Alarm abzuschalten: schau mal auf www.spenden-center.de.vu - da hab ich das umgesetzt (bzw. mache das morgen)
LG und vielen Dank
Christian
Lieber Chrissy,
schau mal auf www.spenden-center.de.vu
also bitte!? Du meinst wohl http://www.dart-devils.de/penner/? Verkaufe uns hier nicht für dumm!
Liebe Grüße,
Felix Riesterer.
»» schau mal auf www.spenden-center.de.vu
also bitte!? Du meinst wohl http://www.dart-devils.de/penner/? Verkaufe uns hier nicht für dumm!
Tu ich nicht! Die Domain www.spenden-center.de.vu wird auf www.dart-devils.de/penner umgeleitet...
Aber um vielleicht noch mal zur Frage zurückzukommen: Wenn ich per CSS sl:visitet { visibility:hidden; } nehme, dann geht das ganze zwar, aber: ich lasse eine Zahl anzeigen, die die Anzahl der Links anzeigt. Jetzt sind es ja nicht mehr 400, sondern z.B. nur noch 390. Also müsste man die Links doch irgendwie zählen können. Gibt es da nicht irgendwas???
ZU HÜÜÜLF!!!
Mfg. Christian
Hi,
Wie erkenne ich jetzt aber, ob der Link schon angeklickt wurde?
Das einfachste: notier das display:none doch bereits in .sl:visited?!
Zur Laufzeit kann man aktuelle Werte mit getComputedStyle()/currentStyle auslesen - wobei ich jetzt nicht weiß, ob es da mit Pseudoformaten nicht Probleme gibt.
Beim Linkklick merken, daß der Link geklickt wurde (also z.b. ID sichern), und das dann bei Bedarf auswerten.
Gruß, Cybaer