使用jQuery更改href不再触发访问的样式:

问题描述 投票:4回答:3

我的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=/';
    });
jquery sharepoint href visited
3个回答
3
投票

似乎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中损坏



1
投票

添加查询字符串参数会使浏览器将其视为一个完全不同的URL,尚未被访问过。浏览器无法知道Source参数不会更改链接的目的地。

[另一件事是您的样式有多具体-有时“表a”会覆盖“ a:已访问”,因此您也需要“表a:已访问”。

© www.soinside.com 2019 - 2024. All rights reserved.