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写的一个DIV 弹出网页对话框
Aug 14 Javascript
document.documentElement的一些使用技巧
Apr 18 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
JavaScript中数据结构与算法(三):链表
Jun 19 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
vue中锚点的三种方法
Jul 06 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
ES6顶层对象、global对象实例分析
Jun 14 Javascript
layui实现三级联动效果
Jul 26 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 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与XML的PDF文档生成技术
2006/10/09 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP四大安全策略
2014/03/12 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
2则自己编写的jQuery特效分享
2015/02/26 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
Python使用minidom读写xml的方法
2015/06/03 Python
Python快速从注释生成文档的方法
2016/12/26 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python 求定积分和不定积分示例
2019/11/20 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
老教师工作总结的自我评价
2013/09/27 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
小学英语教学随笔
2015/08/14 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL