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 相关文章推荐
学习ExtJS Panel常用方法
Oct 07 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
Feb 07 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
Aug 23 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
vue实现的组件兄弟间通信功能示例
Dec 04 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 Javascript
原生JavaScript实现随机点名表
Jan 14 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与javascript的两种交互方式
2006/10/09 PHP
php加密解密实用类分享
2014/01/07 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python str与repr的区别
2013/03/23 Python
python实现爬虫下载漫画示例
2014/02/16 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python 统计字数的思路详解
2018/05/08 Python
python设置随机种子实例讲解
2019/09/12 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
python ssh 执行shell命令的示例
2020/09/29 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
大学生年度自我鉴定
2013/10/31 职场文书
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript