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 相关文章推荐
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
jquery鼠标停止移动事件
Dec 21 Javascript
js charAt的使用示例
Feb 18 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
Oct 17 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
javascript作用域、作用域链(菜鸟必看)
Jun 16 Javascript
Servlet实现文件上传,可多文件上传示例
Dec 05 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
vue + element-ui实现简洁的导入导出功能
Dec 22 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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实现微信公众平台发红包功能
2018/06/14 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Python计算回文数的方法
2015/03/11 Python
Python psutil模块简单使用实例
2015/04/28 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
python轮询机制控制led实例
2020/05/03 Python
Python排序函数的使用方法详解
2020/12/11 Python
python中time tzset()函数实例用法
2021/02/18 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
中专毕业个人的自荐信格式
2013/09/21 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
社区灵活就业证明
2014/11/03 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
贷款工作证明模板
2015/06/12 职场文书
2016年母亲节寄语
2015/12/04 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
解决MySQL报“too many connections“错误
2022/04/19 MySQL