Privatliv med :visited

Af Jesper Kristensen, 03-04-2010 19:18

Du kender det godt: Lige siden internettets barndom har ubesøgte links været blå mens besøgte links har været lilla, med mindre hjemmesiden har valgt andre farver til at repræsentere forskellen. Fx på denne side er begge typer links blå, den ene er bare lidt mørkere end den anden. Det kan være meget praktisk, så man kan se hvor man allerede har været. Problemet er bare, at det kan hjemmesiderne også, som det fx kan ses på startpanic.com.

Dette har været kendt i meget lang tid. Problemet er at det er meget svært at løse uden enten at ødelægge eksisterende hjemmesider eller helt fjerne muligheden for at både du og hjemmesiden kan se om du har besøgt siden før. Den sidste af mulighederne findes allerede i Firefox i dag, men er ikke slået til som standard.

Farv ikke besøgte vs. ikke-besøgte sider

Siden Firefox 3.5 har du kunnet undgå problemet ved at gøre følgende:
  1. Skriv about:config i din adresselinje og tast Enter
  2. Find layout.css.visited_links_enabled og dobbeltklik på den, så værdien bliver false.
Det giver så problemet, at du heller ikke selv kan se hvilke sider du har besøgt eller ej.

Lyv over for hjemmesiden

En anden mulighed ville være at farve links som normalt, men lyve over for hjemmesiden, så den tror alle links er blå. Problemet er bare at hjemmesiden kan (lige som denne blog gør det) ændre på hvordan besøgte vs. ikke-besøgte links skal se ud ved hjælp af CSS-koderne :link og :visited. Den kan fx ændre størrelsen på linket, således at hele sidens layout rykker sig. Det giver problemer, heriblandt:
  • Det gør browseren langsommere og bruger mere hukommelse at vedligeholde to modeller af sidens udseende. En som den faktisk ser ud og en som den ville se ud hvis ingen links var besøgt.
  • Hvis siden tror den ser anderledes ud end den faktisk gør, kan det få siden til at gøre noget forkert så den slet ikke virker.

Mozillas løsning

Mozilla har som den første browser meldt ud, at de vil løse problemet og hvordan de vil gøre det. Løsningen er en mellemting af de to scenarier:
  • Tillad kun ændringer af farver i :visited. Alle andre ændringer ignoreres.
  • Lyv over for hjemmesiden, så den altid vil se farverne som hvis ingen links var besøgte.
  • Tillad kun visse elementer at ændre farve baseret på :visited.
Med denne løsning vil langt den største brug af :visited stadig virke samtidigt med at du stadig selv kan se hvilke links du har besøgt og ikke besøgt. Læs den fulde beskrivelse samt begrundelsen for netop denne løsning i Mozillas beskrivelse.