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 );
        }
    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • iphone相册打开是横屏_苹果手机相册变成横屏怎么办

    iphone相册打开是横屏_苹果手机相册变成横屏怎么办1.在以往开发中,app调用相册一直没问题。最近开发ipad的时候,项目必须横屏,这时候调用相册的时候app就奔溃了问题所在:系统的相册只支持竖屏打开,如果你的app设置了只能横屏,就会冲突,打不开相册,程序会崩溃。解决方法:在网上找了很久,很多说在打开相册的时候强制竖屏,或者重写一个类,继承UIImagePickerController,重写他的 –

  • 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机…「建议收藏」

    计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机…「建议收藏」关机提示windows7正在配置windows请勿关闭计算机,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示windows7正在配置windows请勿关闭计算机,然后等了一晚上也没有关掉。现在电脑无法正常关机有进程失去响应不能结束,所以停留在这个状态…

  • 操作系统第二章进程的描述与控制_进程同步和互斥的区别

    操作系统第二章进程的描述与控制_进程同步和互斥的区别什么是进程同步进程互斥的原则进程互斥的软件实现方法1、单标志法2、双标志先检查法3、双标志后检查法4、Peterson算法进程互斥的硬件实现方法1、中断屏蔽方法2、TestAndSetLock指令TSL和中断屏蔽的区别利用TSL完成进程间互斥-《现代操作系统》P713、XCHG指令信号量机制1、整型信号量2、记录型信号量(默认)记录型信号量定义P操作(wait操作)V操作(signal操作)信号量机制实现进程互斥信号量机制实现进程同步-前V后

  • WebGame开发过程中的一些思考和总结

    WebGame开发过程中的一些思考和总结WebGame如今已经很火,市场也很大,盛大和腾讯都已经看中这一块市场。我自己也在做这方面的研发,总结和思考一些问题。

  • icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]

    icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]ICEM-蜗壳网格划分导入模型你需要在ICEM中导入你的模型,一般用的模型格式为STP、IGS、X_T等通用第三方格式。同时如果你有提前画好的网格你也可以导入进来。PRAT建立创建好各部分的Part,并创建body,与此同时修复模型,对于简单的模型只需要做一个修复模型的命令就行,但是对于一些复杂的模型再导入到ICEM中很多部位都是需要做修复的,这时候就需要对这一部分破损的模型进行修复。…

  • 如何理解线程

    如何理解线程

发表回复

您的电子邮箱地址不会被公开。

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