什么时候会应用:visited伪类到一个超链接?

3

我有一些关于:visited伪类的问题:

  • 浏览器基于什么决定将:visited伪类应用于超链接?
  • 它们是从浏览器的页面历史记录中获取这些信息还是存储在每个会话或其他地方?
  • 开发网页的人是否可以控制:visited伪类应用于超链接的时间长度?

(注意:我不是要解决实际问题,我只是想知道它是如何工作的)

6个回答

5

当链接被基于浏览器历史记录进行访问时,它会被应用。清除历史记录将清除已访问状态。据我所知,没有“超时”。


2

这通常存储在浏览器的页面历史记录中(除非在某些隐私模式下是每个会话存储)。

它只是检查该链接是否存在于历史记录中,如果存在,则为:visited。据我所知,您无法以任何方式控制它适用的时间长度。


1

:visited参数存储在用户的历史文件中,只能在本地删除。无法从服务器控制。

你为什么想要为它设置超时?也许有其他方法可以得到你需要的东西。

你可以在链接中创建一个随机参数,例如:

http://www.yourdomain.com/?<random argument>

这样链接总是不同,但指向相同的链接,然后你只需丢弃参数。

@编辑 是的,如果您设置一个cookie并且每个用户检查cookie上次设置的时间(包括参数),如果时间>您想要的时间,则刷新参数是可能的。


我不想设置超时时间,只是想知道是否可能。改变查询字符串参数的提示很好。 - M4N
好的,不过,了解一下你为什么希望它成为可能可能会很有趣。 - Nealv
我没有实际要解决的问题,只是想知道它是如何工作的。 - M4N

1

你可以通过在目标更改时更改链接本身来在某种程度上控制它的优势。例如,我见过一些留言板软件,在前页面链接中将消息计数附加到其主题链接上,这样当其中有新消息出现时,您曾经访问过的链接将变为未访问过。


1

几乎所有的东西都已经涵盖了,除了一件事。 什么时候应用? 当目标页面有其onload事件时。所以不是立即的。 如果你在后台打开链接,你会看到一些延迟,然后它才会切换样式。这正是外部页面加载并且浏览器存储历史记录/触发更改所需的时间。


0

它仅适用于超链接(<a href>),并且仅在浏览器历史记录中找到条目时才适用(而非会话)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接