如何使用历史记录js在浏览器中启用/禁用“单击以继续”按钮?

时间:2014-05-05 14:49:11

标签: javascript jquery html5 browser-history html5-history

使用history.pushState,我们可以使用历史记录API更改当前网址。使用popstate函数,我们可以返回上一页。但回过头来,我发现浏览器中的前向链接按钮"点击此处继续前进"被禁用。现在,使用历史记录,我需要访问该按钮的属性。

我们如何使用历史记录API访问转发按钮的网址?

2 个答案:

答案 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";
相关问题