使用history.pushState
,我们可以使用历史记录API更改当前网址。使用popstate
函数,我们可以返回上一页。但回过头来,我发现浏览器中的前向链接按钮"点击此处继续前进"被禁用。现在,使用历史记录,我需要访问该按钮的属性。
我们如何使用历史记录API访问转发按钮的网址?
答案 0 :(得分:2)
你手动弹出状态吗?听起来它已被删除了。
要返回,您应该使用history.back()
。 history.back()
将保留历史记录中的条目,以便您可以看到前进按钮已启用以继续前进。
您还可以指定使用history.go(X)
返回的条目数。例如:history.go(-3)
会将您带回三页。
来源:MDN
答案 1 :(得分:0)
我更喜欢AJAX方法,当返回(或转发)时,所有js变量(页面范围)都有旧值。首先,您使用time
(服务器)生成JS变量,然后通过AJAX检查此值。当Hacker(超级初学者)想要通过后退/前进访问URL时,此方法显示alert('You are Hacker.Oops')
并更改位置。
page.php
<script type="text/javascript">
<?php $expire=time()+120; // 2 minute
$expire_hash=md5($expire+'SECRET-KEY'); // optional for security purposes
?>
$.get('anti-back-forward.php?<?php echo "expire=$expire&expire_hash=$expire_hash"?>',
function(content){
if(content=='BAD'){
alert('You are hacker.Oops');
window.location='index.php';
}
});
</script>
反回-forward.php
extract($_GET);
if(($expire<time()) || $expire_hash!=md5($expire+'SECRET-KEY'))
die('BAD');
echo "OK";