3

:visited我对伪类有一些疑问:

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

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

4

6 回答 6

5

当根据浏览器历史访问链接时应用它。清除您的历史记录将清除访问状态。据我所知,没有“超时”。

于 2010-08-29T12:41:19.577 回答
2

通常存储在浏览器的页面历史记录中(不是每个会话,除非可能是某种隐私模式)。

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

于 2010-08-29T12:41:30.127 回答
1

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

为什么要为它设置超时?也许还有另一种方法可以得到你需要的东西。

您可以做的是在您的链接中创建一个随机参数,例如:

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

这样链接总是不同的,被定向到同一个链接,然后你就扔掉参数。

@edit是的,有可能,如果你设置了一个cookie并且每个用户检查最后一次为每个链接设置cookie的时间(包括参数),如果时间>你想要的时间,刷新参数

于 2010-08-29T12:42:42.170 回答
1

您可以通过在目标更改时更改链接本身来控制它以发挥您的优势。例如,我见过一些留言板软件,它会将消息计数附加到其首页上的主题链接中,这样当新消息出现在其中时,您访问过的链接就不会被访问。

于 2010-08-29T12:47:53.933 回答
1

well almost everything has been covered except one thing. when does it get applied? when the target page has its onload event. so not immediately. if you open the link in a new tab in the backgorund you will see some delay before it switches its style. tahts exactly the time the external page takes to load and for the browser to store history/trigger the change.

于 2010-08-29T12:55:25.970 回答
0

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

于 2010-08-29T12:41:44.340 回答