window.open()被拦截问题】的更多相关文章

问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 解决方法:先创建一个新窗口,然后在回调函数中修改url var new_window = window.open(); $.ajax({ url: "submit_already_save.html", typ…
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢   问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模…
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 解决方法: 1.异步改为同步,即:async:false 2.将新开窗口指向为一个对象,然后修改对象的 ur…
前言:此文章仅是个人工作中遇到问题后的一些记录和总结,可能毫无意义.. 事件回顾: 在开发中,PM要求在一个页面中输入多个链接然后可以一键在新窗口打开,所以就想到用window.open来实现,但是测试的时候发现会被拦截 分析: 关于window.open的用户很多前辈都有写过相关文章,就不在这里介绍了,查看window.open用法 针对不同的浏览器做了以下测试 1.用户点击事件内,触发打开一个新窗口 用户点击事件触发新窗口是例如: obj.onclick=function(){ window…
最近做项目的时候遇到一个需求,在商品详情页面中点击购买按钮,之后再新标签页中打开生成的订单页面,所以想用window.open()来实现.但是测试的时候发现打开的链接被浏览器拦截. 之后,开始在网上查找解决方案,看到最常用的一个是新建一个a标签,模拟点击测试,多次测试后发现并没有用.然后又尝试了几个其他常见的方法,还是都会被拦截. 然后,发现window.open()拦截是有条件的.一般通过用户的点击事件触发的在新标签页中打开链接,浏览器是不会拦截的,因为这种形式打开新窗口浏览器会认为是用户自己…
项目使用ajax post后根据返回的success,需要打开一个新页面,使用window.open发现谷歌浏览器直接被拦截. 后来了解发现该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了,即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')), 浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以也会被拦截.废话不多说,直接上终极解决办法 解决方法: var newwin = window.open(); // 这句…
1)直接调用window.open 或 点击的时候直接调用 window.open 是不会被拦截的 // 不会被拦截$('.btn-open').click(function(){ window.open('xxxx', '_blank'); }); 2)window.open 只能放函数第一层,放在函数嵌套里会被拦截 // 会被拦截$('.btn-open').click(function(){ $.get('xxxx.php', function(res){ window.open(res.…
最近在项目中有一个在浏览器中新开一个窗口的需求,如果不需要做任何的判断,只是直接新开窗口的话,用a标签即可. 但是如果需要做一些判断再新开一个窗口的话,就不能使用a标签了.window.open确实可以打开一个新窗口,但会被浏览器当作广告被拦截,需要手动去解除拦截. 在网上搜索了很多,但并没有一个可以解决的. 于是,使用了form提交新开窗口的黑科技 demo1 <html> <body> <form name="xxxForm" action="…
window.open('/app/dashbuilder.html?' + group.id, '_blank'); // 一般_self不会被拦截 // 改为 let newTab = window.open('about:blank', '_blank'); newTab.location.href = "/app/dashbuilder.html?" + group.id;…
From:https://blog.csdn.net/winy_lm/article/details/60959751 ajax async设为false即同步调用 //去支付function gotoPay(param) { $.ajax({ type: "post", url: "/xxxx/xxxx", async: false,// 只加了个同步 data: {"param": param}, error: function (data)…