8

我试图为访问的链接添加一些效果,然后我遇到了这个问题。

这是代码:http ://dabblet.com/gist/5447894

只有 Opera 才能成功更改:before伪元素的内容。所有其他浏览器都失败。我错过了什么吗?谢谢

4

2 回答 2

16

访问链接的允许(= 不忽略)CSS 属性是color, background-color, border-*-color, outline-colorand, column-rule-color(在某些情况下更多)。

这是为了防止历史窃取攻击。有关更多详细信息,请参阅本文

因此,从技术上讲,您可以:before为链接设置一个伪类:visited,但它会被忽略并看起来好像链接没有被访问过。这不是一个错误,这是一个功能;)

于 2013-04-23T22:52:50.010 回答
3

出于隐私原因,在现代浏览器中设置链接样式的可能性范围非常有限:visited——因此您无法通过使用 javascript 检查计算的样式来检测用户之前访问过哪些站点。

:visited链接样式的允许属性是

  • color
  • background-color
  • border-color(及其子属性)
  • outline-color
  • 填充和描边属性的颜色部分

即便如此,您也无法通过 javascript 获取已访问链接的计算样式值。

你可以在这里阅读更多关于它的信息。

于 2013-04-23T22:59:01.583 回答