职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1171|回复: 1

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

[复制链接]
无处不在 发表于 2011-9-1 12:30 | 显示全部楼层 |阅读模式
if(window.name== "current"){
             //如果满足这个条件的话就表示页面是后退来的,
    alert("后退时会执行");
        }else{
            window.name= "current";//给页面命名
            alert("后退不会执行");
            
        }

上页面这个方法不可行
window.name是给当前的窗口命名的。
但可以小改动,借用java的Token机制的思想。有两种情况,下面还有第三种变态的处理方法
a)在点击后退时给"window.name"设值,如“window.name='back';history.go(-1);”;然后再小改动一下上面的方法也行
if(window.name== "back"){
             //如果满足这个条件的话就表示页面是后退来的,
    window.name=="current";//改变窗口名,方便下次提交时提示,可以执行else的内容
    alert("后退时会执行");//正常这里是不写内容,不过,上面的这条一定要写
        }else{
    //这里面是要正常提示的内容
            alert("后退不会执行");
           
        }
这个方法是偷工减料的,方便中途修改(因为搜索“history”就可以找出哪些是后退的)。如果开始做处理的后退还会提示的话,就不建议用户这种方法,因为这种方法无法解决点击浏览器的后退。
b)以下这个方法可以解决点击浏览器的后退。会好很多。原理还是一样
在当前提示的页面的前一个连接中,点击时先给"window.name"设值,如“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
我个人认为这个方法是最好的了。您想到更好的了吗?欢迎分享


yoyo 发表于 2011-9-1 12:31 | 显示全部楼层
推荐链接
20-30万急聘多名天才Java/MTA软件工程师

见证又一个准百万富翁的诞生!
3G培训就业月薪平均7K+,不3K就业不花一分钱!

您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-26 01:33 , Processed in 0.148021 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表