【问题标题】:Search window.history page stack搜索 window.history 页面堆栈
【发布时间】:2020-10-13 12:28:40
【问题描述】:

我在网上找不到任何东西:是否有搜索 window.history 页面堆栈的功能?我想知道用户是否已经在不使用 cookie 或 sessionStorage 的情况下访问了页面?

【问题讨论】:

  • 这能回答你的问题吗? Access my entire browsing history via Javascript
  • 嗯,有点,谢谢,但是有没有办法确定用户是否已经访问过一个页面?在 AJAXED 页面上,如果尚未访问该页面,我想使用 window.scrollTo(0,0) 。最好不要使用 cookie 或类似的存储容器。
  • 您需要完整阅读链接问题的答案以找出答案。哪个不是。
  • @Anna 你可以使用 localStorage(你没有排除那个)或使用服务器端跟踪 API 来记录访问。

标签: javascript browser-history session-storage


【解决方案1】:

“出于安全原因,History 对象不允许非特权代码访问会话历史记录中其他页面的 URL,但它确实允许它浏览会话历史记录。” - MDN

【讨论】:

  • 这不是诋毁有效答案的理由。我忘了检查重复项并立即投票关闭。
  • 重复的答案没有用。
  • 为什么要投票关闭!?我的后续问题是:在 AJAXED 页面上,如果尚未访问该页面,我想使用 window.scrollTo(0,0) 。最好不要使用 cookie 或类似的存储容器。
  • @Anna 就像我说的理想情况下,您必须使用localStoragecookies 或服务器端跟踪机制(更好地控制跟踪生命周期)。只要您隐藏实现细节,另一个答案的:visited 想法也很有趣。
  • 非常感谢!我将对此进行研究并研究 :visited 方法!
【解决方案2】:

您可以尝试使用 css 样式设置 :visited 选择器的 a 标记。在您的页面上放置一个隐藏的 div,其中包含一个 a 标记,其 href 设置为第一页。使用visited selector 为其添加一个css 样式,然后检查a 标记的样式以查看它是否与该样式匹配。

【讨论】:

  • 这正是浏览器制造商停止使用 :visited 伪选择器的原因;跟踪人们在网络上的活动的垃圾邮件发送者和其他恶意内容。
  • @HereticMonkey 确实 - 这是使用旧版本浏览器的一个优势 ;o) 但是,说真的,如果我想知道用户是否访问过我的一个页面,我会在页面来注册该事实,而不是试图侵入用户的私人数据来找出答案。我只是把这个问题放在一堆“我需要查看用户的本地文件/cookies/所有localStorage/他们正在使用的扩展名的详细信息等等等等”但是,我认为它是保留相同的协议/域/端口页面 - 比如 localStorage?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2013-09-15
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多