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 相关文章推荐
用prototype实现的简单小巧的多级联动菜单
Mar 24 Javascript
javascript iframe内的函数调用实现方法
Jul 19 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
javascript一元操作符(递增、递减)使用示例
Aug 07 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
Aug 23 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 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使用COPY函数更新配置文件的方法
2015/06/18 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
xml和web特殊字符
2009/04/28 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
工程力学硕士生的自我评价范文
2013/11/16 职场文书
安全事故检讨书
2014/01/18 职场文书
公司聘任书模板
2014/03/29 职场文书
致共产党员倡议书
2014/04/16 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
承诺保证书格式
2015/02/28 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
党章学习心得体会2016
2016/01/14 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
八年级作文之感恩
2019/11/22 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL