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 相关文章推荐
MooTools 1.2介绍
Sep 14 Javascript
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
Sep 08 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
Angularjs中的ui-bootstrap的使用教程
Feb 19 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
vue v-model表单控件绑定详解
May 17 Javascript
详解ES6通过WeakMap解决内存泄漏问题
Mar 09 Javascript
通过实例讲解JS如何防抖动
Jun 15 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 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
世界上第一台立体声收音机
2021/03/01 无线电
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
详解tensorflow实现迁移学习实例
2018/02/10 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python opencv实现图像配准与比较
2021/02/09 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
大学毕业生通用自荐信范文
2013/10/31 职场文书
网络书店创业计划书
2014/02/07 职场文书
公益广告标语
2014/06/19 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
会计岗位职责范本
2015/04/02 职场文书
个人道歉信大全
2019/04/11 职场文书
实用求职信模板范文
2019/05/13 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang