2.6k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von friedel Experte (3.3k Punkte)
Hallo.

Angenommen, eine Website enthält mehrere Links. Es gibt für Links u.a. die Pseudoklassen :visitied und :active. Wie kann man per Script abfragen ob z.B. document.links[j] oder document.getElementsByTagName("a")[j] zu einer dieser Pseudoklassen gehört?

7 Antworten

0 Punkte
Beantwortet von
ohne es je probiert zu haben:

getComputedStyle sollte dir das derzeitige Aussehen eines Elements liefern. Wenn a:active immer roten Hintergrund hat, sollte eine Abfrage der Hintergrundfarbe Aufschluss geben können
0 Punkte
Beantwortet von friedel Experte (3.3k Punkte)
Danke, das kannte ich noch nicht. Aber es nützt mir wohl nichts (außer dass ich mal wieder was gelernt habe). Es muss natürlich auch im Internet Explorer funktionieren. Und getComputedStyle geht laut Beschreibung erst ab IE9 und auch das geht nur die Basisfunktion. Außerdem haben die Links in der Problemseite gar keine unterschiedlichen Styleeigenchaften für :active, :visited und andere Pseudoklassen. Ich möchte nur auslesen, ob sie aktiv bzw. besucht sind.
0 Punkte
Beantwortet von
bei nochmaligem Nachdenken stoße ich darauf, dass derartiges unter History-Stealing (http://selfhtml.apsel-mv.de/verweise/verweise.html#history-stealing) fiele, so dass die Browser (hoffentlich) keine Möglichkeit dazu bieten.



PS: die SN-Soft verschluckt gelegentlich Links, so wie auch diesen, daher ist er nicht klickbar
0 Punkte
Beantwortet von friedel Experte (3.3k Punkte)
Ok, das mit dem History-stealing hatte ich noch nicht bedacht. Es gilt aber auch nur für :visited, nicht für :active. (Problematisch wäre es in meinem Fall eh nicht, weil es nur um interne Links geht.) Aber ich wüsste eben gerne, ob es überhaupt geht. Kann man per Script irgendwie abfragen, ob ein Link aktiv ist (oder gehovert ist oder den Focus hat)?
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
DeinElement.onmouseover = function () { ... }
bzw. DeinElement.onfocus

http://de.selfhtml.org/javascript/objekte/event.htm
0 Punkte
Beantwortet von friedel Experte (3.3k Punkte)
Ist wohl die einzige Möglichkeit. Ich hatte eigentlich erwartet, dass dan sowas irgendwie direkt abfragen kann. Um diese Möglichkeit zu nutzen, muss man ja alle Links dynamisch verändern, wenn man nicht vorher weiß, bei welchen Links man die Eigenschaft später abfragen will. Außerdem muss man höllisch aufpassen, dass man nicht eventuell schon vorhandene onmouseover- bzw. onfocus-Aktionen überschreibt. Eine recht umständliche Notlösung. Trotzdem natürlich vielen Dank für die Antwort.
0 Punkte
Beantwortet von
was aber zu :visited überhaupt keine Aussagen ermöglicht, denn dafür gibt es keinen Event-Handler
...