js 推断 当页面无法回退时(history.go(-1)),关闭网页[通俗易懂]

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

大家好,又见面了,我是全栈君。

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

遇到的问题就是怎样推断 是否有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 );
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115885.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月29日 上午9:00
下一篇 2022年1月29日 上午9:00


相关推荐

  • 《图解HTTP》读书笔记建议收藏

    《图解HTTP》对HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。

    2021年12月18日
    58
  • ubuntu 源仓库说明

    ubuntu 源仓库说明ubuntu网易源:debhttp://mirrors.163.com/ubuntu/xenialmainrestricteduniversemultiversedebhttp://mirrors.163.com/ubuntu/xenial-securitymainrestricteduniversemultiversedebhttp://mirrors.163.co

    2022年6月21日
    111
  • route命令的使用详解[通俗易懂]

    route命令的使用详解[通俗易懂]Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设…

    2022年7月18日
    17
  • Solr之配置DataImport

    1、拷贝将/opt/solr/solr-7.3.1下的dist和contrib目录拷贝到/opt/solr/solrhome目录下.2、相关jar包拷贝solr-dataimporthandler-7.3.1.jar和solr-dataimporthandler-extras-7.3.1.jar包拷贝到/opt/tomcat/apache-tomcat-8.5.31/webapps/s…

    2022年4月13日
    49
  • Murmur下载_murmurhash3

    Murmur下载_murmurhash3NativeJSmurmurhashimplementationMurmurHash.jsAnoptimizedJavaScriptimplementationoftheMurmurHashalgorithms.ThesealgorithmstakeaJavaScriptstring(andaseed),andquicklycreateanon-cr…

    2022年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号