如果按下刷新按钮,则指向另一页

时间:2014-01-15 18:19:46

标签: javascript php

按下刷新按钮时,我想使用PHP或javascript将用户发送到不同的页面。 也就是说,

if (refresh pressed) header('Location: Some_Page.php');

谁能告诉我怎么可能?

3 个答案:

答案 0 :(得分:3)

虽然您将问题标记为javascript,但您也将其标记为php

您可以使用sessions。以下是我尝试过的方法。

我将条件语句设置为10(用于测试目的),但您可以将其设为1或您希望的任何其他数字。

N.B。: ob_start();是必需的,否则会抛出headers already sent错误消息。

<?php
ob_start();
session_start();

if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
 echo "Views=". $_SESSION['views'];

if ($_SESSION['views']== 10){
header("Location: http://www.example.com/");
}
?>

脚注:如果您使用此功能,session_start();(如果使用ob_start();可能header())需要在使用相同会话的所有文件中,并且如图所示在顶部。

答案 1 :(得分:0)

所以,我不认为你可以挂钩到特定的页面刷新事件(我认为它不存在),你可以通过javascript挂钩到页面卸载,这将在页面刷新事件上触发。您可以使用onunloadonbeforeunload事件来触发在缓存或cookie中保存状态。 (您也可以在正常游戏过程中每隔x秒设置一次状态)

您无法通过挂钩unloadonbeforeunload事件来提醒或重定向

<小时/> 以下是我的原始建议,在我测试之前发现您无法从onunloadonbeforeunload事件进行页面导航

你还想设置一个布尔说游戏场所已经开始,检查unload事件中的布尔值(在游戏完成后将布尔值设置为false)。这样,当用户想要实际离开游戏时,您不会进行重定向。

window.onbeforeunload=function(){window.location.replace(...)};

window.location.href=...也可以在onunload事件的上下文中使用。

答案 2 :(得分:0)

事件点击Refresh按钮等于退出当前页面的事件。使用下一个:

 // jQuery
 $('body').bind('beforeunload',function(e){
   e.preventDefault();
   var url = "http://stackoverflow.com";    
   $(location).attr('href',url); 
 });

 // JS
 window.onbeforeunload = function (e) {
    e.preventDefault();
    var url = "http://stackoverflow.com";

    // IE8 and lower fix
    if (navigator.userAgent.match(/MSIE\s(?!9.0)/)) {
       var referLink = document.createElement("a");
       referLink.href = url;
       document.body.appendChild(referLink);
       referLink.click();
     }         
     else  window.location.replace(url); 
 };