js判断当页面无法回退时关闭网页否则就history.go(-1)

 更新时间:2014年08月07日 14:57:51   投稿:whsnow  
当页面没有前驱历史记录时,点击返回按钮时直接关闭页面,否则就退回到前一页

在做一个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常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异

    javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异

    对于 HTMLCollection集合对象 必须要说一说的是 namedItem方法. 看看规范的解释.
    2010-12-12
  • ElementPlus Tag标签用法小结

    ElementPlus Tag标签用法小结

    这篇文章主要介绍了ElementPlus Tag标签用法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • js代码规范之Eslint安装与配置详解

    js代码规范之Eslint安装与配置详解

    这篇文章主要介绍了js代码规范之Eslint安装与配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Bootstrap table分页问题汇总

    Bootstrap table分页问题汇总

    这篇文章主要为大家汇总了Bootstrap table分页的典型问题,以及对应每个bootstrap table分页问题的解决方法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JS实现文件动态顺序载入的方法

    JS实现文件动态顺序载入的方法

    这篇文章主要介绍了JS实现文件动态顺序载入的方法,实例分析了基于Mootools框架实现动态载入的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 验证控件与Button的OnClientClick事件详细解析

    验证控件与Button的OnClientClick事件详细解析

    以下就是被我已知忽略的问题和解决方案,当我发觉这个问题的时候,冒出了一身冷汗,幸亏做了严格的服务器端验证,不然可就惨了
    2013-12-12
  • axios的简单封装以及使用实例代码

    axios的简单封装以及使用实例代码

    一般我们在做一个大型项目的时候,需要用到很多接口时,我们为了方便使用,就把接口封装起来,这篇文章主要给大家介绍了关于axios简单封装以及使用的相关资料,需要的朋友可以参考下
    2021-06-06
  • JavaScript修改css样式style动态改变元素样式

    JavaScript修改css样式style动态改变元素样式

    修改css样式style在某些情况下还是比较实用的,可以动态改变一些样式,接下来为大家介绍下使用JavaScript是如何做到的
    2013-12-12
  • javascript数组去重方法分析

    javascript数组去重方法分析

    这篇文章主要介绍了javascript数组去重方法,通过2个示例对比分析了javascript数组去重的原理与操作技巧,需要的朋友可以参考下
    2016-12-12
  • 纯js实现手风琴效果

    纯js实现手风琴效果

    这篇文章主要介绍了纯js+html制作手风琴和纯css+html制作手风琴两种效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论