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 相关文章推荐
IE浏览器打印的页眉页脚设置解决方法
Dec 08 Javascript
javascript new fun的执行过程
Aug 05 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
Sep 26 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
Three.js获取鼠标点击的三维坐标示例代码
Mar 24 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
vue项目配置sass及引入外部scss文件
Apr 14 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的header和asp中的redirect比较
2006/10/09 PHP
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
趣味运动会开幕词
2015/01/28 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技