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 相关文章推荐
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
深入理解JSON数据源格式
Jan 10 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
jQuery模仿单选按钮选中效果
Jun 24 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
javascript自执行函数
Feb 10 Javascript
angular中的cookie读写方法
Aug 02 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
解决vuex刷新数据消失问题
Nov 12 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 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里的JS打印函数
2006/10/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
动态创建类实例代码
2009/10/07 Python
python多线程扫描端口示例
2014/01/16 Python
python基础教程之匿名函数lambda
2017/01/17 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
机关出纳岗位职责
2014/04/03 职场文书
团委竞选演讲稿
2014/04/24 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
迎七一演讲稿
2014/09/12 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
秋季运动会加油词
2015/07/18 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Python必备技巧之字符数据操作详解
2022/03/23 Python