2013-04-23 12 views
6

Ziyaret edilen bağlantılar için bazı efektler eklemeye çalışıyordum, sonra bu sorunu yakaladım. http://dabblet.com/gist/5447894Ziyaret edilen içeriğin içeriği değiştirilemez: sahte öğelerden önce

Sadece Opera başarıyla :before sözde elemanları içeriğini değiştirebilirsiniz: Burada

kodudur. Diğer tüm tarayıcılar başarısız. Bir şey mi kaçırdım? Teşekkür

+1

[Firefox 4 işlenemedi: a: visit :: before (color hariç)] 'nin olası kopyası (http://stackoverflow.com/questions/5839127/firefox-4-not-rendering-avisitedbefore-except-color) – bookcasey

cevap

9

ziyaret bağlantıların CSS özellikleri (belirli koşullar altında daha çok) color, background-color, border-*-color, outline-color ve column-rule-color olan izin (= göz ardı).

Bu, tarih saldırılarını önlemek içindir. Daha fazla bilgi için bkz. this article.

Teknik olarak :visited bağlantıları için bir :before sözde sınıf ayarlayabilirsiniz, ancak yoksayılacak ve bağlantılar ziyaret edilmediymiş gibi görünür. Bu bir hata değil, bir özellik değil;)

+0

Teşekkürler, Opera'nın çalışmasını sağlayabileceğine şaşırdım :) – Peiwen

+1

Bu, operada güvenlik eksikliğinin olduğu anlamına geliyor! –

2

Gizlilik nedeniyle, modern tarayıcılarda :visited bağlantılarının şekillendirilmesi için çok kısıtlı olasılıklar var. Böylece, daha önce hangi kullanıcıların siteyi ziyaret ettiğini tespit edemediniz. javascript ile hesaplanmış stil. :visited bağlantılar için

şekillendirme için izin verilen özellikleri

    background-color
  • border-color
  • color
  • (ve alt özellikleri) dolgu ve inme
  • outline-color
  • renkli parçalar mülkler

Yine de, javascript aracılığıyla ziyaret edilen bağlantılar için hesaplanan stil değerlerini alamıyorsunuz.

Daha fazla bilgiyi here adresinden edinebilirsiniz.

+0

Açıklamanız için teşekkür ederiz :) – Peiwen

İlgili konular