【问题标题】:How do I detect if a browser distinguishes visited links?如何检测浏览器是否区分访问过的链接?
【发布时间】:2017-04-18 16:42:20
【问题描述】:

如果我的网站访问者的网络浏览器无法区分他们已经访问过的链接,我该如何向他们显示消息?

我的website 的访问者喜欢将他们已经访问过的链接与他们没有访问过的链接区分开来,通常通过以不同的颜色显示它们。大多数网络浏览器会自动为它们处理这个问题。从历史上看,Internet Explorer 是个例外,但自 2016 年 11 月 30 日以来,我收到了 iPad 和 iPhone 上 Safari 用户的投诉。我目前使用 JavaScript 来检测 Internet Explorer,并告诉它的用户如果他们想要区分他们访问的链接,就切换到 Chrome 或 Firefox。我本来打算对 Safari 10 做同样的事情,但是这里关于如何通过 JavaScript 检测 Safari 10 的答案说“你不应该再做浏览器检测了。你应该使用功能检测”。对我来说很有意义,那么如何检测浏览器是否区分访问过的链接?

【问题讨论】:

  • 你没有。我们曾经允许为此设置不同的样式,但事实证明这是一种很棒的方式,它允许 3rd 方脚本通过生成一千个 <a href="..."> 元素然后检查来查看您访问过的网站它们的 CSS 样式是否与“已访问”样式匹配。所以这非常糟糕,几乎所有浏览器都不再将“已访问”视为您可以检查的内容。

标签: javascript html browser browser-detection


【解决方案1】:

如果链接在浏览器的历史记录中,则会显示为:visited。所以你真的想看看:visited 是否在浏览器中实现。无需执行feature detection,您只需查看此处:http://caniuse.com/#search=%3Avisited 即可发现您正在寻找的内容已得到广泛实施。

那么为什么您的用户并不总是获得:visited 链接?可能是使用私人会话、不保存历史记录等多种原因。

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多