这是我在 JavaScript 中要做的事情。有没有办法在php中做到这一点?我正在开发一个需要此功能但不能使用 JavaScript 的项目。
setInterval ( "checkHistory()", 1000 );
function checkHistory() {
if (oldHistLength != history.length) {
removegateway();
oldHistLength = history.length;
}
}
这是我在 JavaScript 中要做的事情。有没有办法在php中做到这一点?我正在开发一个需要此功能但不能使用 JavaScript 的项目。
setInterval ( "checkHistory()", 1000 );
function checkHistory() {
if (oldHistLength != history.length) {
removegateway();
oldHistLength = history.length;
}
}
很抱歉,使用 PHP 无法做到这一点。您唯一的选择是在某处使用 JavaScript。
但是,您可以使用另一种技术实现我认为您正在尝试做的事情 - PHP 会话和请求 URI。
这涉及将用户访问的 URL 存储到一个变量(或者您可以使用 MySQL)中,该变量可以在当前会话中网站的任何位置引用。
这是一个(未经测试的)示例:
<?php
session_start();
// Retrieve/create the current list
if( isset($_SESSION['history']) ) {
$history = $_SESSION['history'];
} else {
$history = new array();
}
// Add the current URL to the history array
array_push($history, $_SERVER['REQUEST_URI']);
// Do anything else you want to here
// Store the array again
$_SESSION['history'] = $history;
?>
在您的代码中,您可以保留一个包含 $_SERVER['php_self'] 值的数组serialize(),并将其存储在会话变量中。但是,这对于您尝试做的事情可能还不够。我不确定是什么removegateway(),但这段代码是否试图阻止使用后退按钮?
如果您阻止页面被缓存,您可以将数组中的第二个到最后一个值与当前页面进行比较,如果它们匹配,则您检测到一个后退按钮。这只有在无法返回前端的上一页时才有可能。
阻止返回按钮通常被认为是一件坏事,因此最好重新考虑您做事的方式并提出更好的解决方案。