无法更改被访问的内容:在伪元素之前

时间:2013-04-23 22:46:35

标签: css pseudo-element css-content

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

以下是代码:http://dabblet.com/gist/5447894

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

2 个答案:

答案 0 :(得分:11)

访问过的链接的允许(=未忽略)CSS属性为colorbackground-colorborder-*-coloroutline-colorcolumn-rule-color(更多信息)的情况下)。

这是为了防止历史窃取攻击。有关详细信息,请参阅this article

因此,从技术上讲,您可以为:before链接设置:visited伪类,但它将被忽略并显示为好像未访问链接。这不是错误,它是一个功能;)

答案 1 :(得分:2)

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

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

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

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

您可以详细了解here