我的编程空间,编程开发者的网络收藏夹
学习永远不晚

window.open()被浏览器拦截怎么解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

window.open()被浏览器拦截怎么解决

本篇内容介绍了“window.open()被浏览器拦截怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、问题描述

以下是浏览器拦截示例:

window.open()被浏览器拦截怎么解决

window.open()被浏览器拦截怎么解决

window.open()被浏览器拦截怎么解决

window.open()被浏览器拦截怎么解决

二、问题分析

浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了,即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截。

三、window.open()语法

window.open(url, name, features, replace)
  Arguments - 参数  url
  可选字符串参数,指向要在新窗口中显示的文档的URL。如果省略该参数,或者参数为空字符串,新窗口不会显示文档。
  name
  可选字符串参数,该参数可以设置新窗口的名称。
  相同name的窗口只能创建一个,要想创建多个窗口则name不能相同。
  features
  可选字符串参数,该参数用于设定新窗口的功能。因为该参数是可选的,如果没有指定该参数,新窗口有所有的标准功能。
  replace
  可选布尔参数,设置新窗口中的操作历史的保存方式。
  true - 创建新历史记录
  false - 替换旧的历史记录
Returns - 返回值
  一个根据name参数对新创建的或已存在的窗口对象的引用。
Description - 描述
  open()方法可以查找一个已经存在的或者新建的浏览器窗口。如果name参数指定了一个已经存在的刘浏览器窗口,则返回对该窗口的引用。返回的窗口中将显示URL中指定的文档,但是features参数会被忽略。open()方法是JavaScript中唯一通过名称获得浏览器窗口引用的途径。
  如果没有指定name参数,或者不存在name参数指定的名称的窗口,open()方法将创建一个新的浏览器窗口。
  name参数用于指定新窗口的名称,该名称必须由字母、数字和下划线字符组成。它可以被HTML文档中的<a>标记或<form>标记指向。
  当你使用window.open()方法加载一个新的文档到一个已经存在了命名的窗口中时,你可以通过replace参数设置历史记录的保存方式.。如果该参数是true, 新文档的历史记录将取代旧文档的历史记录。 如果该参数为false或这没有指定该参数,新的文件在窗口的浏览历史记录中将建立自己的条目。该参数提供了location.replace()相同功能的方式。
  不要把"Window.open( ) "和"Document.open( )"混淆;这是两个完全不一样的方法。为了让代码更明晰,你可以用"Window.open( )"代替 "open( )"。作为HTML属性定义事件处理程序时, "open( )" 一般被解释为"Document.open( )",所以在这种情况下,你必须使用"Window.open( )"。
Window Features - 窗口特性
  feature参数是一个用逗号分隔的功能列表。如果该参数为空或者没有指定该参数,新的窗口将拥有所有的功能。另一方面, 如果feature参数只指定了某一项或某几项功能,那么其他没有被指定的功能将不会出现在新的窗口中。该字符串不能包含任何空格或其它空字符串。
  列表中的每个元素的格式:功能[=值]
  对于绝大多数的功能来说,它们的值一般都是yes或no。对这些功能,等号和值都可以省略不写。 对于 width和height特性,必须给它们指定一个以像素为单位的值。
  一下是一些普遍支持的功能和它们的含义:
  height
  设定窗口显示区域的像素宽度
  left
  浏览器窗口距离屏幕左边的距离
  location
  指明地址栏在新窗口中是否可见
  menubar
  指明菜单栏在新窗口中是否可见
  resizable
  指明新窗口是否可以调整大小
  scrollbars
  指明滚动栏在新窗口中是否可见
  status
  指明状态栏在新窗口中是否可见
  toolbar
  指明工具栏在新窗口中是否可见
  top
  设定新窗口距屏幕上方的距离
  width
  设定窗口显示区域的像素宽度
  alwaysLowered
  指定窗口隐藏在所有窗口之下
  alwaysRaised
  指定窗口浮在所有窗口之上
  dependent
  指定打开的窗口为父窗口的一个子窗口。并随父窗口的关闭而关闭
  directions
  指定Navigator 2和3的目录栏是否在新窗口中可见
  hotkeys
  在没有菜单栏的新窗口设置安全退出热键
  innerHeight
  设置新窗口中文档的像素高度
  innerWidth
  设置新窗口中文档的像素宽度
  menubar
  指明菜单栏在新窗口中是否可见
  outerHeight
  设定窗口(包括装饰边框)的像素高度
  outerWidth
  设定窗口(包括装饰边框)的像素宽度
  screenX
  设定新窗口离屏幕边界的像素长度
  screenY
  设定新窗口离屏幕上边界的像素长度
  titlebar
  指明菜单题目栏在新窗口是否可见
  z-look
  在文档中包含各个 <pplet>标签的数组
  fullscreen
  打开的窗体是否进行全屏显示

四、代码模拟

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>测试弹框拦截</title>  <script>    window.open("http://www.cnblogs.com/chenyablog/","测试弹框","top=nInt,left=nInt,width=nInt,height=nInt,location=yes,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no");  </script></head><body>   <h2>测试弹框拦截</h2></body></html>

五、解决方案在

ajax请求之前,先用window.open 打开一个空白窗口,然后在ajax的响应函数中设置该窗口的location属性为新的url。

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>测试弹框拦截</title>  <script>    async displayProjectileFrame (type) {      const title = '测试弹框拦截'      // 先打开一个窗口      let newWindow = window.open()      //给新窗口设置标题      newWindow.document.title = title      try {        const base = 'xxxxxxxxxx'          // 这里是模拟ajax,不同使用场景需要有所变化        const openUrl = await this.$axios.$get('/xxx/xxxx', {          params: {            base          }        })        if (openUrl) {          // 重定向          newWindow.location = openUrl        }      } catch (e) {        this.$axiosError(e)      }    }  </script></head><body>   <h2>测试弹框拦截</h2></body></html>

“window.open()被浏览器拦截怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

window.open()被浏览器拦截怎么解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

window.open()被浏览器拦截怎么解决

本篇内容介绍了“window.open()被浏览器拦截怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、问题描述以下是浏览器拦截示例
2023-07-02

windows谷歌浏览器flash插件被拦截如何解决

本篇内容主要讲解“windows谷歌浏览器flash插件被拦截如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows谷歌浏览器flash插件被拦截如何解决”吧!解决方法:1、进入浏
2023-07-01

虚拟主机总是被拦截怎么解决

虚拟主机被拦截可能是由于多种原因造成的,以下是一些可能的解决方法:1. 检查域名解析:确保域名解析正确,将域名指向正确的虚拟主机IP地址。2. 检查防火墙设置:查看服务器的防火墙设置,确保正确配置,并允许流量通过。3. 检查域名绑定:确保虚
2023-08-26

spring boot 2.x静态资源会被拦截器拦截的原因分析及解决

这篇文章主要介绍了spring boot 2.x静态资源会被拦截器拦截的原因分析及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-12

使用html2canvas怎么截图浏览器

本篇文章给大家分享的是有关使用html2canvas怎么截图浏览器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。作用html2canvas可以通过纯JS对浏览器端经行截屏,但截
2023-06-09

spring拦截器抛出异常怎么解决

当Spring拦截器抛出异常时,可以根据需要采取以下几种解决方案:1. 异常处理器:使用Spring的异常处理器来处理拦截器抛出的异常。可以创建一个全局的异常处理器,实现`HandlerExceptionResolver`接口,并在其中处理
2023-08-18

windows 360浏览器怎么最全截图

本篇内容介绍了“windows 360浏览器怎么最全截图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!360浏览器全屏半屏截图方法第一种方法
2023-07-01

腾讯云域名解析到阿里云服务器被拦截怎么解决

首先,检查阿里云的域名解析服务器是否正确连接到云服务器。您可以通过访问腾讯云的控制台,或者联系腾讯云客服寻求帮助。如果连接问题是由于云服务器未正确配置所导致的,请确保您的云服务器已正确配置。如果问题仍然存在,请尝试以下方法:重新启动云服务器。重新安装云服务器上的DNS缓存。尝试手动将域名解析到其他服务器上。如果您的域名
腾讯云域名解析到阿里云服务器被拦截怎么解决
2023-10-28

win7浏览器主页被篡改如何解决

本文小编为大家详细介绍“win7浏览器主页被篡改如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7浏览器主页被篡改如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。解决方法:一、按下“WIN+R
2023-06-28

Mybatis拦截器打印sql问题怎么解决

本篇内容介绍了“Mybatis拦截器打印sql问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.log4j2配置修改关闭log4
2023-07-05

浏览器Cookie功能被禁怎么办

这篇文章主要为大家展示了“浏览器Cookie功能被禁怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“浏览器Cookie功能被禁怎么办”这篇文章吧。1、鼠标点击设置按钮,选择Internet选
2023-06-28

怎样解决域名网址被微信拦截停止访问

这篇文章主要介绍了怎样解决域名网址被微信拦截停止访问,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。怎样解决域名网址被微信拦截停止访问?由于微信限制比较严格,域名一不小心就被判
2023-06-05

win10自带的浏览器被篡改如何解决

如果您的Windows 10自带的浏览器被篡改,您可以尝试以下解决方法:1. 运行安全扫描:首先,运行您的安全软件进行全面扫描,以检测和删除任何恶意软件或病毒。2. 重置浏览器设置:打开被篡改的浏览器,找到并点击设置选项。在设置菜单中,寻找
2023-09-01

mybatis拦截器无法注入spring bean怎么解决

这篇文章主要介绍“mybatis拦截器无法注入spring bean怎么解决”,在日常操作中,相信很多人在mybatis拦截器无法注入spring bean怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-29

win10没有IE浏览器怎么解决

这期内容当中小编将会给大家带来有关win10没有IE浏览器怎么解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。不少用户初次使用win10系统,想要打开IE浏览器浏览网页。不过找了好久都找不到IE浏览器。
2023-06-28

win10怎么解决edge浏览器乱码

这篇文章主要介绍“win10怎么解决edge浏览器乱码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10怎么解决edge浏览器乱码”文章能帮助大家解决问题。具体步骤:1.Win + R输入【g
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录