我的SharePoint网站需要保留CSS中为链接定义的a:visited样式。我添加了以下代码,在每个href后面附加了“&Source = /”。似乎通过jQuery更改href时,浏览器仅“看到”原始的href,因此从不触发a:visited
样式,因为没有匹配项...
$("table[class='ms-listviewtable'] td[class='ms-vb2'] a")
.removeAttr("onclick")
.attr('href', function () {
return $(this).attr('href') + '&Source=/';
});
似乎IE在动态更新的链接上不支持:visited
样式。我只测试了IE8,但如果它在最新版本中不起作用,我不希望它在IE 6/7中起作用
IE仅支持最基本的方案,即访问者单击导航到其他页面的链接,然后单击“后退”按钮以返回上一页。只有这样,链接才会显示其:visited
样式。
尽管它在Firefox 3中完美运行;链接的样式正确,即使它们的href
属性通过javascript更新。
我创建了一个测试页面,使您可以尝试各种链接和方法:http://jsbin.com/odoqo(可通过http://jsbin.com/odoqo/edit编辑)
注意:我只在Firefox 3和IE 8中使用过测试页,它可能会在IE 6/7中损坏
添加查询字符串参数会使浏览器将其视为一个完全不同的URL,尚未被访问过。浏览器无法知道Source参数不会更改链接的目的地。
[另一件事是您的样式有多具体-有时“表a”会覆盖“ a:已访问”,因此您也需要“表a:已访问”。