重定向页面延迟或继续

时间:2014-12-28 13:25:51

标签: javascript php jquery

我有一个页面,其中包含指向其他网站的链接。当用户点击链接时,它会通过redirect.php将其重定向到所需的站点。

我想要获得的是: 在我的重定向页面中:

<meta http-equiv="refresh" content="3;URL=<?php echo $post_url ?>" />

为了让用户在redirect.php中停留3秒钟。我想让用户在这个页面中有两个选项:

  1. 如果想要读取其中显示的内容,请保持并冻结redirect.php。
  2. 要立即或在阅读完内容后跳过它,然后转到所需的网站。
  3. 我更喜欢PHP,但我相信它需要jquery,我想知道是否有人可以将我(有趣的是)重定向到一个带有免费代码的工作示例,无论是jquery,JS还是PHP。

    感谢。

2 个答案:

答案 0 :(得分:2)

而不是<meta http-equiv="refresh"... >使用Javascript重定向,使用jQuery可能看起来像这样:

$(function(){
    window.redirectTimeout = setTimeout(function(){  // set a redirect timeout of 3 seconds
        window.location.href = '<?php echo $post_url ?>';
    }, 3000);

    $('#cancelBtn').on('click', function(){  // assuming #cancelBtn is used to cancel redirection 
        clearTimeout(window.redirectTimeout);
    });
});

要直接转到其他网站,只需在页面中使用简单的链接:

<a href="<?php echo $post_url ?>">Go there now!</a>

答案 1 :(得分:1)

首先摆脱元刷新 - 它不可取消。

则...

<强> HTML

<a id="go" href="http://.....">Go</a>
<a id="hold">Hold</a>

<强>的Javascript

$(window).load(function() {
    //javascript equivalent of meta refresh
    var t = setTimeout(function() {
        $("#go").click();
    }, 3000);

    //cancel the timeout if hold button is clicked
    $("#hold").on('click', function() {
        clearTimeout(t);
    });
});

在这种情况下,最好做一切响应窗口的onload事件,因为它会让用户在重定向触发之前有更好的机会阅读内容。

之前,文档的ready事件会在之前触发 - 在所有内容加载之前

另外,使用此解决方案,重定向网址定义一次,而不是两次。