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判断录入的日期是否合法
Jan 08 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
Apr 28 Javascript
Javascript 赋值机制详解
Nov 23 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
js实现一个猜数字游戏
Mar 31 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
layui prompt 设置允许空白提交的方法
Sep 24 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_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
vue之延时刷新实例
2019/11/14 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
python编码总结(编码类型、格式、转码)
2016/07/01 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python实现函数极小值
2019/07/10 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
安全大检查实施方案
2014/02/22 职场文书
大足石刻导游词
2015/02/02 职场文书
食品安全责任书范本
2015/05/09 职场文书
Redis可视化客户端小结
2021/06/10 Redis