热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

在做一个Web项目时遇到一个需求,当页面没有前驱历史记录时(就是当前为新弹出的页面,没法做goback操作即history.go(-1)),点击返回按钮时直接关闭页面,否则就退回到前一页。遇到的问题就是如何判断是否有history可以回退,这个非常麻烦,因为没有这样的函数直接能获取到,只能通过history.leng

在做一个Web项目时遇到一个需求,当页面没有前驱历史记录时(就是当前为新弹出的页面,没法做goback操作即history.go(-1)),点击返回按钮时直接关闭页面,否则就退回到前一页。

遇到的问题就是如何判断 是否有history可以回退,这个非常麻烦,因为没有这样的函数直接能获取到,只能通过history.length这个变量做变通的处理,但是对于IE,和非IE的length的返回值不同,ie: history.length=0, 非IE的为1,因此写了一个函数实现前面所需求的这个功能。分享给大家。

/**
 * 返回前一页(或关闭本页面)
 * 
  • 如果没有前一页历史,则直接关闭当前页面
  • */ function goBack(){ if ((navigator.userAgent.indexOf(&#39;MSIE&#39;) >= 0) && (navigator.userAgent.indexOf(&#39;Opera&#39;) <0)){ // IE if(history.length > 0){ window.history.go( -1 ); }else{ window.opener=null;window.close(); } }else{ //非IE浏览器 if (navigator.userAgent.indexOf(&#39;Firefox&#39;) >= 0 || navigator.userAgent.indexOf(&#39;Opera&#39;) >= 0 || navigator.userAgent.indexOf(&#39;Safari&#39;) >= 0 || navigator.userAgent.indexOf(&#39;Chrome&#39;) >= 0 || navigator.userAgent.indexOf(&#39;WebKit&#39;) >= 0){ if(window.history.length > 1){ window.history.go( -1 ); }else{ window.opener=null;window.close(); } }else{ //未知的浏览器 window.history.go( -1 ); } } }



    推荐阅读
    author-avatar
    倩女甜言蜜语_182
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有