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使用指南之string.js
Jan 10 Javascript
js中获取事件对象的方法小结
Mar 13 Javascript
js作用域及作用域链概念理解及使用
Apr 15 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
js实现按钮控制图片360度翻转特效的方法
Feb 17 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
May 13 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
jquery实现移动端点击图片查看大图特效
Sep 11 Javascript
node+express制作爬虫教程
Nov 11 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 Javascript
浅谈mint-ui 填坑之路
Nov 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
vue实现放大镜效果
2020/09/17 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
PHP面试题及答案二
2015/05/23 面试题
2015年民主生活会发言材料
2014/12/15 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
质量保证书怎么写
2015/02/27 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
海上钢琴师观后感
2015/06/03 职场文书
2015年度女工工作总结
2015/10/22 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
Hive常用日期格式转换语法
2022/06/25 数据库