刷新浏览器地址栏时如何重置css(a:visited {color:green})

时间:2013-12-07 09:44:56

标签: javascript html css

我已成功测试了XHTML文档标记上的访问链接效果。 但是当我刷新时,那些被访问的链接突出显示绿色无法删除 我的浏览器上的地址栏,除了我点击清除所有浏览器上的所有浏览器缓存和历史记录。那么问题是如何在没有清除浏览器缓存和历史记录的情况下单击浏览器刷新按钮时重置所有css?

所以对于我的网站,我需要用PHP代码做一些事情来删除我访问过的那些网站的所有cookie或历史记录,对吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<style>
#checkvisited{width:730px;margin-left:0px;}
#checkvisited  td a{text-decoration:none;color:gray;}
#checkvisited td a:link{color:gray}
#checkvisited td a:hover{text-decoration:underline}
#checkvisited td  a:active{background-color:#DEB887}
#checkvisited td  a:visited{color:green}
</style>
</head>
<body><div id='checkvisited'>
<table><td><a href="http://yahoo.com" >AA</a></td><td><a href="http://yahoo.com?  a=1">BB</a></td>
</table></div></body></html>

3 个答案:

答案 0 :(得分:1)

“访问”链接,即由:visited伪类获取的链接,是浏览器历史记录中的链接。因此,将这些链接转换回非访问链接的唯一方法是将其从浏览器的历史记录中删除。

顺便说一下,您不需要a:link定义。 :link用于突出显示未访问过的链接。看到您有a的基本定义和a:visited的定义,您的a:link就是多余的。

然而,这是一个建议的解决方案,旨在通过使用getComputedClass来揭示页面中所有访问过的链接来防御攻击者发现用户的浏览器历史记录:

http://dbaron.org/mozilla/visited-privacy

(几乎可以肯定你正在寻找什么,但它仍然有用:visited的机制阅读

答案 1 :(得分:1)

一种解决方案是在页面加载链接的href属性末尾添加随机数发生器。这样,当您的页面重新加载时,链接href是不同的,因为它在结尾处有一个新的随机值。

// lets say, this is your link
var link = document.getElementById('foo');

// suffix a randomizer to the href attribute
var rand = Math.floor(Math.random() * 1000);
var href = link.getAttribute('href');
link.setAttribute('href', href + (href.indexOf('?') === -1 ? '?' : '&') + '_=' + rand);

注意:仅当链接在另一个标签/窗口中打开或者是页内链接时,此选项才有用。否则,无论如何单击该链接会将用户带到另一页。

答案 2 :(得分:0)

为了摆脱不同的颜色:我使用:

a:visited {
    color: inherit;
} 

如果有人问。