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 相关文章推荐
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
Jquery api 速查表分享
Jan 12 Javascript
JavaScript实现表格点击排序的方法
May 11 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
学习JavaScript设计模式之中介者模式
Jan 14 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
在小程序中使用Echart图表的示例代码
Aug 02 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
vue实现行列转换的一种方法
Aug 06 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 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中使用数组指针函数操作数组示例
2014/11/19 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
vue debug 二种方法
2018/09/16 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
班队活动设计方案
2014/01/30 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
房产公证书范本
2014/04/10 职场文书
寄语是什么意思
2014/04/10 职场文书
学习保证书100字
2015/02/26 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python