我在redirect.php页面中有这段代码:
<script>
$(window).load(function() {
var secs = 5, display = $('#time');
setInterval(function() {
display.text(' ' + secs);
if (secs > 0){
secs--;
}
}, 1000);
window.redirectTimeout = setTimeout(function(){
window.location.replace("<?php echo $post_url ?>");
}, 500);
$('#cancelBtn').on('click', function(){
clearTimeout(window.redirectTimeout);
$('#time').hide();
});
});
</script>
我正在使用
window.location.replace
因为我希望当用户从页面重新定向回来时跳过此页面,但仍然按下后,此redirect.php页面会再次加载和重定向。
知道为什么
window.location.replace
在这里不起作用或如何在后退时跳过此重定向页面?
由于
答案 0 :(得分:1)
您需要查看使用replaceState
等历史记录操作功能,请查看此处的文档https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
然后,您需要在更改history.replaceState
对象
window.location
调用
答案 1 :(得分:0)
好的,感谢A. Wolff和unobf我得到了它:
在 我添加了这一行: 其中XXX.php是跳过redirect.php后我想让用户登陆的页面。 YYY是页面的标题。
此功能修改了浏览器的历史记录,因此当用户按下时,它将转到的页面不是实际的上一页,而是我在window.history.replaceState中定义的页面。 现在,我获取了用户获取redirect.php的页面URL和标题(我用_GET或_SESSION执行)并回显它而不是YYY和XXX.php所以当用户返回时它会去到它点击链接的页面,该链接将其带到redirect.php并从那里到达目标。 这是最终的代码。谢谢大家。window.location.replace("<?php echo $post_url ?>");
window.history.replaceState( {} , 'YYY', 'XXX.php' );
<script>
$(window).load(function() {
var secs = 5, display = $('#time');
setInterval(function() {
display.text(' ' + secs);
if (secs > 0){
secs--;
}
}, 1000);
window.redirectTimeout = setTimeout(function(){
window.history.replaceState( {} , '<?php echo $srcTitle ?>', '<?php echo $srcUrl ?>' );
window.location.replace("<?php echo $post_url ?>");
}, 500);
$('#cancelBtn').on('click', function(){
clearTimeout(window.redirectTimeout);
$('#time').hide();
});
});
</script>