【问题标题】:setting a url as visited将 url 设置为已访问
【发布时间】:2010-06-28 14:07:00
【问题描述】:

我有一个

<a href="my_redirect_page.php?link=mylink">my_text</a> 

我的页面上的链接,以及 my_redirect_page.php 中的以下行:

header("Location: ".$mylink); 

但是在重定向之后,如果我在浏览器中单击返回,则链接的“my_text”不会显示为已访问(紫色,而不是蓝色)。我该如何解决这个问题?有没有办法在 php 或 javascript 中更改访问的属性?

谢谢,

戴夫

【问题讨论】:

  • 你没有,浏览器会在用户实际访问链接时执行此操作。
  • 嗯,这就是问题的重点。用户会点击要重定向的链接,但链接后没有出现紫色。

标签: php javascript html redirect visited


【解决方案1】:

不是一个了不起的解决方案,但是,在 my_redirect_page.php 中:

<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0; url=<?php echo $_GET['link']; ?>">
</head>
<body>
Redirecting to <?php echo html_entities( $_GET['link'] ); ?>.<br>
If you are not redirected, <a href="<?php echo $_GET['link']; ?>">click here</a>.
</body>
</html>

或类似的东西 - 页面应该加载(从而进入浏览器历史记录),然后以 0 的延迟加载目标 URL。如果由于某种原因重定向失败,用户将看到一个包含指向目标 URL 的链接的页面。

【讨论】:

    【解决方案2】:

    我不确定这是否可行,除非您更改重定向的完成方式。

    [这个问题][1] 基本上是你的一个副本,并且一致认为没有一个浏览器允许你设置伪类(如 :visited)。

    为用户模拟它的最简单方法是设置一个 CSS 类,该类为链接着色,使其看起来与浏览器默认或 CSS 样式的访问链接相同,您可以在视图层中轻松完成此操作或添加如果链接出现在window.history 中,则使用 javascript 类。

    也许还可以将元素推送到 window.history 数组中,并让它们出现在浏览器历史记录中(因此被赋予 :visited 伪类),但我不确定如果那行得通。不过值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多