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 相关文章推荐
HTML-CSS群中单选引发的“事件”
Mar 05 Javascript
setTimeout与setInterval在不同浏览器下的差异
Jan 24 Javascript
JavaScript 原型学习总结
Oct 29 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
Aug 22 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
koa上传excel文件并解析的实现方法
Aug 09 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 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.ini中文版(2)
2006/10/09 PHP
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP 数组入门教程小结
2009/05/20 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
医药大学生求职简历的自我评价
2013/10/17 职场文书
财务会计专业推荐信
2013/11/30 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫