Google Chrome a:访问过的背景图片无效

时间:2010-09-24 15:58:53

标签: css google-chrome background-image visited

(在我开始之前我应该​​说是的,我已经完成了所有的愚蠢检查,是的,这个链接在我的历史中并且已被访问过等)

我使用的是Chrome版本6.0.472.63,但重要的是它适用于所有浏览器。

适用于Firefox,IE和Opera。

基本上我所要做的就是在链接被访问后更改链接的背景图像。

我已经做了很多试验和错误测试,所以请耐心等待多个例子。

这就是我原来的

.forum_box .title a {
 background-image:url(../images/f_unread.png);
 background-position:10px center;
 background-repeat:no-repeat;
 background-color:transparent;
 color:#2D4054;
 font-size:14px;
 padding:10px 12px 10px 44px;
 text-decoration:none;
 display:block;
 font-weight:bold;
}
.forum_box .title a:visited {
 background-image:url(../images/f_read.png);
}

适用于Chrome以外的所有浏览器。接下来我试着把它变成一种颜色而不是图像。

.forum_box .title a:visited {
 background-color:red;
}

同样,我将链接更改为#fff而不是透明,访问链接变为红色,所以显然bg颜色只有在为父级设置bg颜色时才有效。

.forum_box .title a {
 background-image:url(../images/f_unread.png);
 background-position:10px center;
 background-repeat:no-repeat;
 background-color:#fff;
 color:#2D4054;
 font-size:14px;
 padding:10px 12px 10px 44px;
 text-decoration:none;
 display:block;
 font-weight:bold;
}
.forum_box .title a:visited {
 background-color:red;
}

然而,它仍然无法解决我的图像问题。因此,在最后的一次尝试中,我尝试了这一点,希望Chrome出于某种原因,只有在两者都存在相同属性的情况下才能工作。

.forum_box .title a {
 background:#fff url(../images/f_unread.png) no-repeat 10px center;
 color:#2D4054;
 font-size:14px;
 padding:10px 12px 10px 44px;
 text-decoration:none;
 display:block;
 font-weight:bold;
}
.forum_box .title a:visited {
 background:#fff url(../images/f_read.png) no-repeat 10px center;
}

这不起作用,并继续在Firefix,Opera和IE上工作。所以我来到Stack Overflow很困惑。

非常感谢任何帮助!

更新: 我尝试过jQuery解决方案,虽然它仍然无效。尽管有:访问链接,我可以通过将字体颜色更改为红色来确认其访问状态。 jQuery('a:visited')。length返回0。

5 个答案:

答案 0 :(得分:14)

这里的问题相同。 改变一个CSS Sprite中的背景位置:访问在Firefox 3.6中适用于我,但在Chrome 6中不适用。

但可能很快就会停止在Firefox中工作。 (也许是FF 4?)

这是一个隐私问题,你可以在这里阅读一篇关于它的Mozilla文章(2010年3月)http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/ 而且这个bug: https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160

我认为唯一可行的解​​决方案是创造性地使用背景色而不是图像。

答案 1 :(得分:3)

这可能是一个安全问题 检查mozilla安全博客上的post 我当然可以想象他们会怎么做。

答案 2 :(得分:3)

Chrome似乎已禁用css:已访问(彩色除外)。

这可以防止历史嗅探漏洞利用。

请参阅http://www.azarask.in/blog/post/socialhistoryjs/

答案 3 :(得分:0)

你的img url周围可能需要你的单引号... 浏览器在关注报价时以及什么时候不关心时很有趣....

答案 4 :(得分:0)

之所以这样做是出于安全原因,因为可以加载许多不同的图像并检测用户访问过哪些链接,发送特定请求的任何属性或加载特定资源(取决于用户访问过的内容)从技术上讲,这是安全问题,因为它可能泄露用户的个人利益。

https://blog.jeremiahgrossman.com/2006/08/i-know-where-youve-been.html