js判断当页面无法回退时关闭网页否则就history.go(-1)


Posted in Javascript onAugust 07, 2014

在做一个Web项目时遇到一个需求,当页面没有前驱历史记录时(就是当前为新弹出的页面,没法做goback操作即history.go(-1)),点击返回按钮时直接关闭页面,否则就退回到前一页。

遇到的问题就是如何判断 是否有history可以回退,这个非常麻烦,因为没有这样的函数直接能获取到,只能通过history.length这个变量做变通的处理,但是对于IE,和非IE的length的返回值不同,ie: history.length=0, 非IE的为1,因此写了一个函数实现前面所需求的这个功能。分享给大家。

/** 
* 返回前一页(或关闭本页面) 
* <li>如果没有前一页历史,则直接关闭当前页面</li> 
*/ 
function goBack(){ 
if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){ // IE 
if(history.length > 0){ 
window.history.go( -1 ); 
}else{ 
window.opener=null;window.close(); 
} 
}else{ //非IE浏览器 
if (navigator.userAgent.indexOf('Firefox') >= 0 || 
navigator.userAgent.indexOf('Opera') >= 0 || 
navigator.userAgent.indexOf('Safari') >= 0 || 
navigator.userAgent.indexOf('Chrome') >= 0 || 
navigator.userAgent.indexOf('WebKit') >= 0){ 

if(window.history.length > 1){ 
window.history.go( -1 ); 
}else{ 
window.opener=null;window.close(); 
} 
}else{ //未知的浏览器 
window.history.go( -1 ); 
} 
} 
}
Javascript 相关文章推荐
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 Javascript
window resize和scroll事件的基本优化思路
Apr 29 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
JS+CSS实现电子商务网站导航模板效果代码
Sep 10 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 #Javascript
javascript中为某个元素指定事件的三种方式
Aug 07 #Javascript
谷歌地图打不开的解决办法
Aug 07 #Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
Aug 07 #Javascript
jquery bind(click)传参让列表中每行绑定一个事件
Aug 06 #Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 #Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 #Javascript
You might like
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
前端微信支付js代码
2016/07/25 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
vuex的简单使用教程
2018/02/02 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
django站点管理详解
2017/12/12 Python
Python中偏函数用法示例
2018/06/07 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python deque模块简单使用代码实例
2020/03/12 Python
django API 中接口的互相调用实例
2020/04/01 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
python制作抽奖程序代码详解
2021/01/15 Python
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
公益活动策划方案
2014/01/09 职场文书
英语生日邀请函
2014/01/23 职场文书
公司司机岗位职责
2014/02/07 职场文书
数控专业自荐书范文
2014/03/16 职场文书
经营场所使用证明
2015/06/19 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android