按下刷新按钮时,我想使用PHP或javascript将用户发送到不同的页面。 也就是说,
if (refresh pressed) header('Location: Some_Page.php');
谁能告诉我怎么可能?
答案 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挂钩到页面卸载,这将在页面刷新事件上触发。您可以使用onunload
或onbeforeunload
事件来触发在缓存或cookie中保存状态。 (您也可以在正常游戏过程中每隔x秒设置一次状态)
您无法通过挂钩unload
或onbeforeunload
事件来提醒或重定向。
<小时/> 以下是我的原始建议,在我测试之前发现您无法从
onunload
和onbeforeunload
事件进行页面导航
你还想设置一个布尔说游戏场所已经开始,检查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);
};