【问题标题】:when is the :visited pseudo-class applied to a hyperlink:visited 伪类何时应用于超链接
【发布时间】:2010-09-01 22:08:11
【问题描述】:

我对@9​​87654321@ 伪类有一些疑问:

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

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

【问题讨论】:

    标签: css browser pseudo-class


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      通常存储在浏览器的页面历史记录中(不是每个会话,也许在某种隐私模式的情况下除外)。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

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

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

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

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

          【讨论】:

          • 我不想设置超时,我只是想知道这是否可能。更改查询字符串参数的提示很好。
          • 好的,不过,知道您为什么希望它成为可能可能会很有趣
          • 我没有要解决的实际问题。我只是想知道它是如何工作的。
          【解决方案5】:

          除了一件事之外,几乎所有内容都已涵盖。 什么时候申请? 当目标页面有其 onload 事件时。所以不是马上。 如果您在后台的新选项卡中打开链接,您会在切换样式之前看到一些延迟。精确到加载外部页面和浏览器存储历史/触发更改所需的时间。

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-02-07
              • 2015-08-31
              • 1970-01-01
              • 1970-01-01
              • 2012-07-09
              • 2014-11-20
              • 2017-11-29
              相关资源
              最近更新 更多