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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java和python区别_Python和Java之间的区别:主要功能

    java和python区别_Python和Java之间的区别:主要功能java和python区别Python或Java,哪个更好?这个问题在全球开发者社区引发了许多激烈的讨论。初学者开发人员可能对应该掌握两者中的哪一个有所怀疑。初创公司和公司可能想知道哪种方案在他们的下一个项目中会更好。这两种语言都可以以相同的效率解决许多任务,这不足为奇。但是,在某些情况下,一个人可以击败另一个人。在本文中,我们将基于多个方面来分析它们的优缺点。对于那…

    2022年7月7日
  • ajax 面试题_javascript面试题大全

    ajax 面试题_javascript面试题大全1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识)什么是ajax:AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。Ajax包含下列技术:基于web标准(standards-basedpresentation)XHTML+CSS的表示;使用 DOM(Document ObjectM

    2022年8月27日
  • java输入输出流实例代码

    java输入输出流实例代码1.编写一个程序,读取源代码文件的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。packagesrc;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;publicclasstest01{

    2022年5月25日
  • PyCharm激活码永久有效PyCharm2017.3.7激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2017.3.7激活码教程-持续更新,一步到位PyCharm激活码永久有效2017.3.7激活码教程-Windows版永久激活-持续更新,Idea激活码2017.3.7成功激活

    2022年6月19日
  • 《on Java 中文版》读后感(《JAVA编程思想》的原作者)(JAVA 小虚竹)

    《on Java 中文版》读后感(《JAVA编程思想》的原作者)(JAVA 小虚竹)感谢图灵图书的邀请,能提前拜读**BruceEckel**的新作《OnJava8》,**BruceEckel**是《ThinkinginJava》(中文版是**《Java编程思想》(第4版)**)的原作者,**巨佬**(大佬中的大佬)的新书值得期待。

    2022年6月29日
  • 行存储和列存储的优缺点

    行存储和列存储的优缺点按行存储:数据按行存储在底层文件系统中,通常,每一行会被分配固定的空间优点:有利于增加、修改整行记录等操作,有利于整行数据的读取操作缺点:单列查询时,会读取一些不必要的数据按列存储:数据以列为单位,存储在底层文件系统中优点:有利于面向单列数据的读取/统计等操作缺点:整行读取时,可能需要多次I/O操作…

    2022年7月14日

发表回复

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

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