博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何绕过chrome的弹窗拦截机制
阅读量:5072 次
发布时间:2019-06-12

本文共 840 字,大约阅读时间需要 2 分钟。

https://www.cnblogs.com/foru/p/3924385.html?utm_source=tuicool

 

 

在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的。举个例子: 

var btn = $('#btn');      btn.click(function () {       //不会被拦截         window.open('http://cssha.com') });

 

 

上面的代码中,window.open是用户触发的时候,是不会被拦截的,可以正常打开新窗口。再看下面这个:

var btn = $('#btn');btn.click(function () {$.ajax({url: 'wwwox',success: function (url) {//会被拦截window.open(url);}})});

 

上面的代码中,用户没有直接出发window.open,而是发出一个ajax请求,window.open方法被放在了ajax的回调函数里,这样的情况是会被拦截的。

那么,当用户点击按钮,发出ajax请求,如何在ajax请求完成后再打开新窗口,又不被拦截呢? 接着往下看:

var btn = $('#btn');btn.click(function () {//打开一个不被拦截的新窗口var newWindow = window.open();$.ajax({url: 'wwwox',success: function (url) {//修改新窗口的urlnewWindow.location.href = url;}})});

  

上面的代码中,用户安点击按钮的时候,先打开一个空白页,再发ajax请求,在ajax回调里面修改新窗口的.location.href,这样就不会被拦截啦

转载于:https://www.cnblogs.com/jarekpierre/p/9336042.html

你可能感兴趣的文章
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
选择器
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
PHP上传RAR压缩包并解压目录
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>