4

我的 SharePoint 网站需要保留 CSS 中为链接定义的 a:visited 样式。我添加了以下代码,它将“&Source=/”附加到每个href。似乎通过jQuery更改href,浏览器只能“看到”原始href,因此永远不会触发a:visited样式,因为没有匹配......

$("table[class='ms-listviewtable'] td[class='ms-vb2'] a")
    .removeAttr("onclick")
    .attr('href', function () {
        return $(this).attr('href') + '&Source=/';
    });
4

3 回答 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 中中断

于 2009-05-08T06:20:31.230 回答
1

看看这个问题/答案:

访问链接后,Firefox 会选择性地跳过状态更改或 a:visited 样式

于 2009-05-07T21:05:26.680 回答
1

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

要查看的另一件事是您的样式有多具体-有时“table a”会覆盖“a:visited”,因此您还需要“table a:visited”。

于 2009-05-08T00:43:00.153 回答