JavaScript页面后退或关闭

JavaScript页面后退或关闭后退方法history.go(-1)如果无法后退时,会返回一个undefined,利用这一点来判断是否可以后退,不能后退时执行window.close();if(!history.go(-1)){window.close();}window.close();对于火狐浏览器经常会无法关闭。因为火狐浏览器只能关闭通过JS新建的窗口,即有target=”_blank”属性的标签,或者

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

后退方法history.go(-1)如果无法后退时,会返回一个undefined,利用这一点来判断是否可以后退,不能后退时执行window.close();

if (!history.go(-1)) {
    window.close();
}

window.close();对于火狐浏览器经常会无法关闭。因为火狐浏览器只能关闭通过JS新建的窗口,即有target="_blank"属性的<a>标签,或者window.open("","_blank")方式打开的页面。
对此通常采用跳转到about:blank空白页面来实现关闭。

兼容性后退或关闭

if (!history.go(-1)) {
    if (getBrowserType() == "Firefox") {
        window.open("about:blank","_self").close();
    } else {
        window.close();
    }
}

window.open("about:blank","_self").close();用来处理火狐浏览器跳转空白页,及在页面使用JS代码打开的情况下做到关闭页面。

另附getBrowserType()方法
详见 使用userAgent区分浏览器版本

//判断浏览器类型
function getBrowserType() { 
   
    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串

    if (userAgent.indexOf("Firefox") > -1) {
        return "Firefox";
    } else if (userAgent.indexOf("Edge") > -1) {
        return "Edge";
    } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
        return "Opera";
    } else if (userAgent.indexOf("Chrome") > -1) {
        return "Chrome";
    } else if (userAgent.indexOf("Safari") > -1) {
        return "Safari";
    } else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {
        return "IE";
    }
}

代码测试于Firefox 54,Chrome 59,Edge 15,Opera 46,Safari 534,IE 11,可达到预期效果

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux命令行杀死进程_shell脚本获取进程号并杀死进程

    linux命令行杀死进程_shell脚本获取进程号并杀死进程1.kill作用:根据进程号杀死进程用法:kill[信号代码]进程ID举例:[root@localhost~]#psauxf|grephttpdroot49390.00.05160708pts/3S+13:100:00\_grephttpdroot48300.11.32423210272?Ss13:020:00/usr/sbin/h…

    2022年9月1日
    4
  • YUV格式到底是什么?

    YUV格式到底是什么?简介YUV是视频、图片、相机等应用中使用的一类图像格式,实际上是所有“YUV”像素格式共有的颜色空间的名称。与RGB格式(红-绿-蓝)不同,YUV是用一个称为Y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为U(蓝色投影)和V(红色投影),由此得名。YUV也可以称为YCbCr,虽然这些术语意味着略有不同,但它们往往会混淆并可互换使用。Y表示亮度分量:如果只显示Y的话,…

    2022年7月16日
    25
  • C#发送邮件C/s,B/s通用

    C#发送邮件C/s,B/s通用

    2021年7月31日
    54
  • TCP/IP协议详解

    TCP/IP协议详解认识HTTP协议它是互联网协议(InternetProtocolSuite),一个网络通信模型,是互联网的一个基本的构架。HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件…

    2022年6月13日
    46
  • CAD制图系列之中心线画法[通俗易懂]

    CAD制图系列之中心线画法[通俗易懂]我们将做个简单的笔记:CAD中心线怎么画CAD中心线一般为点划线,画法很简单,首先先设置线型一般步骤为:1、首先,打开CAD,点击进入图层特性管理器2、在图层特性管理器中点击线型进行设置3

    2022年8月3日
    14
  • Elon Musk:同一时候颠覆几个行业的科技狂人

    Elon Musk:同一时候颠覆几个行业的科技狂人

    2021年12月2日
    43

发表回复

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

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