首页 > 其他分享 >非js脚本打开浏览器窗口的关闭解决方案

非js脚本打开浏览器窗口的关闭解决方案

时间:2024-10-15 21:17:17浏览次数:11  
标签:浏览器 浏览 解决方案 用户 js window 搜索 close

js脚本打开方式浏览器窗口

关闭方式:

window.close()

非js脚本打开方式浏览器页面

只是前端开发者会惊奇的发现,使用window.close() API,并不能每次成功关闭浏览器窗口,打开控制台发现会有一条警告信息

错误分析:

为什么浏览器要限制 close()?

在我们去深入了解哪些因素会制约 close() 方法之前,我们先要明白为什么需要对它有限制。

有时候这种限制会被含糊地解释为 “安全问题“,但核心其实是简单的 “用户体验“ 问题 - 如果一个标签页或者窗口被突然的关掉,用户可能会丢失一些浏览器中一些重要的状态值或者 “前进/后退” 历史记录栈(在 IE 中,我们称之为 TravelLog)。用户可能使用标签页在浏览一系列的搜索记录(搜索一下-打开,回退到搜索结果页面,再打开另一个,类似这种操作),如果某个搜索结果页面可以直接干掉自己和前面的搜索结果页,用户会非常苦恼。

也有一个 反滥用/安全 观点,如果一个浏览器页签可以随便关闭自己,对于一些恐吓软件或一些用户体验滥用(软件)来说,这个规则可能很有用。

下面是 HTML 标准部分 dom-window-close 说到:

一个浏览上下文可以用脚本关闭,有两种情况:

  • 这是一个由脚本打开的(区别于用户自己打开) 辅助浏览上下文
  • 这是一个顶层浏览上下文,检索历史记录只有一个 document

解决方案:

if (navigator.userAgent.indexOf('Firefox') != -1 || navigator.userAgent.indexOf('Chrome')!= -1) {
    window.location.href = 'about:blank'
    window.close()
  } else {
    window.opener = null
    window.open('', '_self')
    window.close()
}

标签:浏览器,浏览,解决方案,用户,js,window,搜索,close
From: https://blog.csdn.net/m0_56416159/article/details/142964083

相关文章

  • js数组、字符串的那些方法
    一、数组方法arr.copyWithin(a,b,c)用数组部分覆盖数组中的某些内容,改变原数组内容但长度不变a:被覆盖的起始下标;b:复制开始下标(包含);c:复制结束下标(不包含)[1,2,3,4].copyWithin(1,2,3)//[1,3,3,4]arr.flatMap(function(t,i){})拍平数组,只能拍平一层t表示第二层的每......
  • lua脚本使用cjson转换json时,空数组[]变成了空对象{}
    一、前言项目lua使用工具:cjson问题:reids中部分数据的jsonkey存在为[]的值,使用cjson进行解析的时候将原本空数组[]解析成了空对象{}目标:原本[] 转[]二、解决方案在使用cjson类库时,先配置json转换要求--设置json转换格式cjson.encode_empty_table_as_object(fal......
  • 利用pdf.js在线展示PDF文档
    在Web项目中,经常需要在浏览器端展示PDF文档,本文通过一个简单的小例子,简述pdf.js的简单使用,仅供学习分享使用,如有不足之处,还请指正。pdf.js下载pdf.js是一个通用的、基于web标准的、用于解析和呈现pdf的平台。用户可以通过pdf.js的官方网站,进行下载,如下图所示:  关于下载页......
  • 基于Node.js+vue航运空管系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着全球贸易的持续增长和航运业的蓬勃发展,航运空管系统的建设变得愈发重要。航运作为国际贸易的主要运输方式之一,其安全性和效率直接关系到全球经济的稳定......
  • 基于Node.js+vue二手汽车交易系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着经济的快速发展和人民生活水平的日益提高,汽车已成为现代社会不可或缺的交通工具。然而,随着汽车保有量的迅速增长,二手车市场也随之蓬勃发展。传统的二手......
  • 基于Node.js+vue海滨学院学生大创项目申报与审批系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在高等教育日益重视创新与实践能力培养的背景下,大学生创新创业项目(简称“大创项目”)已成为提升学生综合素质、促进产学研结合的重要途径。海滨学院作为一所......
  • 如何改变浏览器标签页名称?
    实现效果:1.当切换到其他网页时,网页标题为“别走!来玩啊”2.当切换为本网页时,网页标题为“哇!你终于回来啦”3.过2s后标题切换为原网页标题实现方法:1.监听浏览器页面切换document.addEventListener("visibilitychange",(function(){...}));这行代码为document对象添......
  • js简单基础笔记
    一 .js特点1. Js是一门解释型语言,不用编译,而是直接执行2. js是一门动态语言,其中的任何内容都是不确定的3. 语法结构和Java,c都很像4. ​  js是一门面向对象的语言5.js严格区分大小写二 .js使用1.  标签使用 在html中的script标签中就可以编......
  • 文字识别解决方案-OCR识别应用场景解析
    光学字符识别(OpticalCharacterRecognition,OCR)技术是一种将图像中的文字转换为可编辑和可搜索的数据的技术。随着人工智能和机器学习的发展,OCR技术的应用场景越来越广泛,为文字录入场景带来了革命性的变革,下面以翔云为例例举出一下几个文字识别场景:文档数字化:企业和个......
  • 如何避免日志中打印SQL语句:完整解决方案
    个人名片......