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 相关文章推荐
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
jQuery 处理表单元素的代码
Feb 15 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
Jan 21 Javascript
JS实现点击上移下移LI行数据的方法
Aug 05 Javascript
前端构建工具之gulp的配置与搭建详解
Jun 12 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
ECMAscript 变量作用域总结概括
Aug 18 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
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中文本数据翻页(留言本翻页)
2006/10/09 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python中正则表达式详解
2017/05/17 Python
Python中的TCP socket写法示例
2018/05/11 Python
python实现狄克斯特拉算法
2019/01/17 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
django rest framework 自定义返回方式
2020/07/12 Python
python基于opencv 实现图像时钟
2021/01/04 Python
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
有原因的手表:Flex Watches
2019/03/23 全球购物
C语言开发工程师测试题
2016/12/20 面试题
汽车销售求职自荐信
2013/10/01 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
创业计划书之校园超市
2019/09/12 职场文书
Python常遇到的错误和异常
2021/11/02 Python