条件Javascript重定向与后退按钮检查器
Conditional Javascript Redirect With Back Button Checker
我已经用javascript做了一个条件重定向(取决于referer)。然而,现在我需要检测用户是否被重定向,然后他点击后退按钮,再次得到他已经重定向的页面。在这种情况下,我不需要再次重定向他。
我在这里找到了一个解决方案-但我没能正确地结合php和javascript,所以总是有一个错误-我如何检测用户是否使用后退按钮进入了一个页面?
代码:<form name="ignore_me">
<input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" />
</form>
<script language="javascript" type="text/javascript">
var dirty_bit = document.getElementById('page_is_dirty');
if (dirty_bit.value == '1') {
document.write("<p>Do Not Redirect</p>");
}
else {
<?php if((stristr($_SERVER['HTTP_REFERER'],"thoughts") != FALSE) { ?>
<?php $setupform = '<form id="form1" method="post" action="http://yahoo.com">'; ?>
<?php $submitform = 'document.getElementById(''form1'').submit(); </form>'; ?>
<?php echo $setupform; ?>
<?php echo $submitform; ?>
<?php } ?>
}
function mark_page_dirty() {
dirty_bit.value = '1';
}
</script>
怎么了?
错误在于它根本不重定向——它给出一个空白页,上面有代码:
<form name="ignore_me">
<input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" />
</form>
<script language="javascript" type="text/javascript">
var dirty_bit = document.getElementById('page_is_dirty');
if (dirty_bit.value == '1') {
document.write("<p>My First JavaScript</p>");
}
else {
<form id="form1" method="post" action="http://yahoo.com">document.getElementById('form1').submit(); </form>
}
function mark_page_dirty() {
dirty_bit.value = '1';
}
我看了一下你的代码,这里有几点:
- 当混合使用PHP和JS时,请记住,PHP代码将首先执行,它不会读取任何JS语句
你把一段PHP代码放到JS的if语句中。
这是一个可能的解决方案:PHP逻辑优先:
$redir = false ;
if((stristr($_SERVER['HTTP_REFERER'],"thoughts"))) {
$redir = true ;
}
HTML表单:<form id="check" action="a.php" method="post">
<input type="hidden" name="durty_bit" value="1" />
</form>
JS检查:
var check = getElementById("check") ;
if (check && check.durty_bit == 1){
document.write("<p>Do Not Redirect</p>");
} else {
<?php if ($redir){ ?>
document.write('<form id="form1" method="post" action="http://yahoo.com"> </form>');
document.getElementById("form1").submit() ;
<?php } ?>
}
相关文章:
- Javascript/Ajax:通过点击按钮检查有效的电子邮件和电话号码
- html单选按钮检查问题
- JS中的单选按钮检查不起作用
- 更改单选按钮检查的值的字体大小
- Wooccommerce单选按钮检查jquery
- 通过单选按钮检查提交表单
- Backbone.js路由器和后退按钮检查
- 在检查单选按钮检查状态后启用/禁用表单元素
- 对用户交互进行单选按钮检查
- 单选按钮检查属性在函数 - JavaScript 中失败
- 基于单选按钮检查值调用Javascript函数
- 单选按钮检查的属性未更改
- jQuery单选按钮检查操作不'不要开火
- knockoutjs单选按钮检查了protectedobservable的值
- 通过单选按钮检查值
- 依靠单选按钮检查
- 我想通过输入类型按钮检查表单验证,而不是通过提交,任何人都可以帮助我
- 使用按钮检查两个或多个无线电组
- Angularjs:当模型改变时,单选按钮检查状态绑定模型值失败
- 条件Javascript重定向与后退按钮检查器