js处理后退还会提示的问题

借用java的Token机制的思想。有两种情况,下面还有第三种变态的处理方法
a)在点击后退时给"window.name"设值,如“οnclick="window.name='back';history.go(-1);"”;然后再小改动一下上面的方法也行
if(window.name== "back"){
             //如果满足这个条件的话就表示页面是后退来的,
    window.name=="current";//改变窗口名,方便下次提交时提示,可以执行else的内容
    alert("后退时会执行");//正常这里是不写内容,不过,上面的这条一定要写
        }else{
    //这里面是要正常提示的内容
            alert("后退不会执行");
          
        }
这个方法是偷工减料的,方便中途修改(因为搜索“history”就可以找出哪些是后退的)。如果开始做处理的后退还会提示的话,就不建议用户这种方法,因为这种方法无法解决点击浏览器的后退。
b)以下这个方法可以解决点击浏览器的后退。会好很多。原理还是一样
在当前提示的页面的前一个连接中,点击时先给"window.name"设值,如“οnclick="window.name='prior';"”然后再小改动一下上面的方法也行
if(window.name== "prior"){
             //如果满足这个条件的话就表示页面是“前进”来的,
    window.name=="current";//改变窗口名,再前进,再后退时,window.name为current。当前{}里面的内容就不会执行了
     //这里面是要正常提示的内容    
    alert("这是第一次执行的提示");
        }else{
            alert("这个是后退所会执行的");//正常这里是不写内容,或者直接不写else{}
        }
这个方法呢,做时需要走回头路,如果写的时清楚知道要有提示的话,就不用走回头路了。不然做着的时候发现要有提示,那就要回过头补写了。一般情况下是清楚地
c)小弟还想到了一种方法,但这种方法做起来感觉有点别扭
在要提示的页面中写一个隐藏的文本框<input type="hidden" name="globalMessage" id="globalMessage" value="1"/>,注意不要重名
if($("#globalMessage").val()== "1"){
             //如果等于默认值就表示页面是“前进”来的
    $("#globalMessage").val('0');//改变这个框的值,再前进,再后退时,$("#globalMessage").val()为“0”。当前{}里面的内容就不会执行了
     //这里面是要正常提示的内容    
    alert("这是第一次执行的提示");
        }else{
            alert("这个是后退所会执行的");//正常这里是不写内容,或者直接不写else{}
        }
以上获值是JQ的写法。此方法就要注意先后顺序了。js代码一定要写在后面了,不然的话会找不到ID,测试了一下还行,(部分浏览器不行,如“chrome”)
我个人认为这个方法是最好的了。您想到更好的了吗?欢迎分享(在下分享的是一种思想,其实还有类似的做法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值