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 相关文章推荐
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
Nov 23 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
node.js中的require使用详解
Dec 15 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
Mar 25 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
JS实现页面数据懒加载
Feb 13 Javascript
javascript实现画板功能
Apr 12 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/03/11 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
详解vue中axios的封装
2018/07/18 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
公司道歉信范文
2014/01/09 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
自荐书范文范例
2014/02/13 职场文书
个人租房协议书
2014/04/09 职场文书
工程承诺书怎么写
2014/05/24 职场文书
教师年度个人总结
2015/02/11 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
图文详解matlab原始处理图像几何变换
2021/07/09 Python