1

我有一个

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

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

header("Location: ".$mylink); 

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

谢谢,

戴夫

4

2 回答 2

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 的链接的页面。

于 2010-06-28T15:46:07.697 回答
0

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

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

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

可以将元素推送到 window.history 数组中,并让它们出现在浏览器历史记录中(并因此获得 :visited 伪类),但我不确定这是否可行。不过值得一试。

于 2010-06-28T15:06:52.310 回答