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中SetTimeOut传参问题探讨
May 10 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
JS操作Cookie写入和读取实例代码
Oct 20 Javascript
js取消单选按钮选中示例代码
Nov 14 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
xmlplus组件设计系列之列表(4)
Apr 26 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
详解JSON.parse和JSON.stringify用法
Feb 18 Javascript
JS前端宏任务微任务及Event Loop使用详解
Jul 23 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共享内存用法实例分析
2016/02/12 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
Django中多种重定向方法使用详解
2019/07/17 Python
python基础 range的用法解析
2019/08/23 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
XML文档面试题
2015/08/05 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
遗失证明范文
2015/06/19 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis