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 相关文章推荐
JavaScript 事件记录使用说明
Oct 20 Javascript
利用js 进行输入框自动匹配字符的小例子
Jun 29 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
js实现tab切换效果
Feb 16 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
vue cli升级webapck4总结
Apr 04 Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 Javascript
vue实现简易音乐播放器
Aug 14 Vue.js
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中SQL注入攻击与XSS攻击
2012/06/10 PHP
php include和require的区别深入解析
2013/06/17 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
PHP多进程简单实例小结
2019/11/09 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
EasyUI实现下拉框多选功能
2017/11/07 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
Python标准库之collections包的使用教程
2017/04/27 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python实现简单的文字识别
2018/11/27 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python实现查找所有程序的安装信息
2020/02/18 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
计算机网络专业个人的自我评价
2013/10/17 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang