浏览 1732 次
锁定老帖子 主题:js处理后退还会提示的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-24
//如果满足这个条件的话就表示页面是后退来的, 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 我个人认为这个方法是最好的了。您想到更好的了吗?欢迎分享 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |