Javascript 刷新浏览器地址栏时如何重置css(a:visited{color:green})
我已经成功地在XHTML文档的标签上测试了访问链接的效果。 但当我刷新链接时,那些被访问的链接高亮显示为绿色的链接无法删除 我的浏览器上的地址栏,但单击“清除每个浏览器上的所有浏览器缓存和历史记录”除外。所以问题是,在不清除浏览器缓存和历史记录的情况下,如何在单击“浏览器刷新”按钮时重置所有css 所以对于我的网站,我需要用php代码删除所有我访问过的网站的cookie或历史记录,对吗Javascript 刷新浏览器地址栏时如何重置css(a:visited{color:green}),javascript,html,css,Javascript,Html,Css,我已经成功地在XHTML文档的标签上测试了访问链接的效果。 但当我刷新链接时,那些被访问的链接高亮显示为绿色的链接无法删除 我的浏览器上的地址栏,但单击“清除每个浏览器上的所有浏览器缓存和历史记录”除外。所以问题是,在不清除浏览器缓存和历史记录的情况下,如何在单击“浏览器刷新”按钮时重置所有css 所以对于我的网站,我需要用php代码删除所有我访问过的网站的cookie或历史记录,对吗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict/
<!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>
#检查访问{宽度:730px;左边距:0px;}
#选中a{文本装饰:无;颜色:灰色;}
#选中td a:链接{颜色:灰色}
#选中a:悬停{文本装饰:下划线}
#检查td a:活动{背景色:#DEB887}
#选中已访问的td a:已访问{颜色:绿色}
一个“已访问”链接,即被:已访问的
伪类拾取的链接,是浏览器历史记录中的链接。因此,将这些链接转换回未访问的链接的唯一方法是将它们从浏览器的历史记录中删除
顺便说一下,您不需要a:link
定义<代码>:链接用于突出显示未访问的链接。鉴于您有a
的基本定义和a:visted
的定义,您的a:link
是多余的
然而,这里提出的解决方案旨在防止攻击者通过使用getComputedClass
显示页面中所有访问的链接来发现用户的浏览器历史:
(几乎可以肯定你在寻找什么,但是阅读
:访问的机制很有用)一个解决方案是在页面加载时在链接的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);
注意:只有当链接在另一个选项卡/窗口中打开或者是页内链接时,此选项才有用。否则,无论如何单击链接都会将用户带到另一个页面。为了消除不同颜色的:visited,我使用以下方法:
a:visited {
color: inherit;
}
如果有人问。一个元素既不是:链接也不是:访问的(即不是链接),因此它不是完全冗余的。因为常见的约定是两个伪类都有(无论如何,它们都是同样特定的),所以没有理由去掉:link
,如果它已经存在的话。为什么你说它是多余的,:link表示未访问的链接,而:visted表示已访问的链接?我说它是多余的,因为a
将样式应用于所有
(包括已访问的链接)并且a:visted
仅将样式应用于已访问的链接;区别在于未访问的链接,也可以使用:link
(冗余)解决。BoltClock识别的边缘情况是,您的
没有href
属性。那些将不会被:link
拾取。为什么我不能使用getComputedStyle(document.links[I],“:visted”).color来获取所有已访问的颜色?它总是显示正常的未访问的颜色如果我对这样做感到困惑,那么:如果href不是unqiue或是随机的,访问的css如何为那些访问过的站点工作?