谷歌浏览器 a:访问的背景图片不起作用

Posted

技术标签:

【中文标题】谷歌浏览器 a:访问的背景图片不起作用【英文标题】:Google chrome a:visited background image not working 【发布时间】:2011-04-16 20:59:28 【问题描述】:

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

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

它适用于 Firefox、IE 和 Opera。

基本上,如果链接已被访问,我要做的就是更改链接的背景图像。

我已经进行了很多试验和错误测试,请耐心等待多个示例。

这就是我原来的样子

.forum_box .title 一个 背景图像:url(../images/f_unread.png); 背景位置:10px 中心; 背景重复:不重复; 背景颜色:透明; 颜色:#2D4054; 字体大小:14px; 填充:10 像素 12 像素 10 像素 44 像素; 文字装饰:无; 显示:块; 字体粗细:粗体; .forum_box .title a:访问过 背景图像:url(../images/f_read.png);

适用于除 Chrome 之外的所有浏览器。接下来我尝试将其设置为颜色而不是图像。

.forum_box .title a:访问过 背景颜色:红色;

同样如此,但是我将链接更改为 #fff 而不是透明的,并且访问的链接变为红色,因此显然 bg 颜色仅在您为父级设置 bg 颜色时才有效。

.forum_box .title 一个 背景图像:url(../images/f_unread.png); 背景位置:10px 中心; 背景重复:不重复; 背景颜色:#fff; 颜色:#2D4054; 字体大小:14px; 填充:10 像素 12 像素 10 像素 44 像素; 文字装饰:无; 显示:块; 字体粗细:粗体; .forum_box .title a:访问过 背景颜色:红色;

但是它仍然不能解决我的图像问题。因此,在最后一次尝试中,我尝试了这一点,希望由于某种原因,Chrome 只能在两者都存在相同属性时才能工作。

.forum_box .title 一个 背景:#fff url(../images/f_unread.png) no-repeat 10px center; 颜色:#2D4054; 字体大小:14px; 填充:10 像素 12 像素 10 像素 44 像素; 文字装饰:无; 显示:块; 字体粗细:粗体; .forum_box .title a:访问过 背景:#fff url(../images/f_read.png) 不重复 10px 中心;

这也不起作用,然后继续在 Firefix、Opera 和 IE 上工作。所以我来到Stack Overflow很迷茫。

任何帮助将不胜感激!

更新: 我尝试了一个 jQuery 解决方案,尽管它仍然不起作用。尽管有 :visited 链接,但我可以通过将字体颜色更改为红色来确认它们的访问状态。 jQuery('a:visited').length 返回 0。

【问题讨论】:

这是可能的,例如我可以做 jQuery('.forum_box .title a:visited').addClass('visited') 然后使用该类进行样式设置。但我认为会有另一种解决方案,而不是 Chrome 在最古老和最基本的 CSS 属性之一上存在固有缺陷。 我知道这并不能解决您的问题,但您可以随时提交错误...code.google.com/p/chromium/issues/entry 您是否尝试过使用 Web Inspector 来显示哪些样式应用于a:visited 链接? (Web Inspector:ctrl+shift+i,选择“元素”并导航到并单击元素窗格中的链接)。 抱歉,不知道为什么我没有早点回复这个问题,我一定是全神贯注了。 Web Inspector 不显示任何访问过的样式,甚至 color:red;没有出现(尽管它确实以计算样式显示)。 好问题。似乎已经有一个针对 Chrome 的错误:code.google.com/p/chromium/issues/detail?id=44043。您可能需要在此处添加确认信息。 【参考方案1】:

您可能需要在您的 img 网址周围加上单引号... 浏览器在关心引号和不关心引号时很有趣......

【讨论】:

这没有任何区别,但感谢您的建议! 对不起,它没有更多帮助,这似乎是一个非常奇怪的问题。就像我上面说的,我会在 chromium web 项目上为它提交一个错误,我认为他们会很快修复这样的问题,因为它是基本的 html/css 功能。【参考方案2】:

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

【讨论】:

【参考方案3】:

同样的问题。 在 a:visited 上更改 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/ 和错误: https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160

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

【讨论】:

我不认为背景颜色会起作用。 AFAIK 整个 :visited 选择器将被完全忽略。【参考方案4】:

Chrome 似乎禁用了 :visited 的 css(颜色除外)。

这是为了防止历史嗅探漏洞。

见http://www.azarask.in/blog/post/socialhistoryjs/

【讨论】:

【参考方案5】:

这样做是出于安全原因,因为可以加载许多不同的图像并检测用户访问过的链接、发送特定请求的任何属性或加载特定资源,具体取决于用户访问过的内容在技​​术上被视为一个安全问题,因为它可能会泄露用户的个人利益。

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

【讨论】:

以上是关于谷歌浏览器 a:访问的背景图片不起作用的主要内容,如果未能解决你的问题,请参考以下文章

谷歌小工具内容类型 URL 不起作用

$('iframe').css('visibility','hidden') 在谷歌浏览器中不起作用

地理定位在谷歌浏览器中不起作用

“autocomplete = off”Html属性在谷歌浏览器中不起作用[重复]

谷歌地图 http 请求不起作用

page-break-* 在谷歌浏览器上不起作用