最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

解决JS打开新窗口被浏览器拦截的问题

业界 admin 5浏览 0评论

今天有一个需求是当用户需要获取到自己上传的资源链接,然后点击查看跳转到对应的资源挂载点。突然发现使用JS的window.oepn()操作会导致浏览器拦截。

原来当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到一段异步代码内部,就会被拦截。

因此我们通过ajax必须设置成同步模式即可解决。

$.ajax({
     url:url,
       type:'GET',
       async:false,
       contentType:'application/json',
       success:function(res){
         window.open(res.content,'_blank');
       },
       error:function(res){
         console.log(res);
       }
 })
注意:(IE下吊坑)

在IE浏览器下面可能会出现失效的情况,请求出现400 Bad request,这是因为在IE浏览器下不支持URL中协带时间跟中文这种参数,所以最好给地址变下码encodeURI(url)

今天有一个需求是当用户需要获取到自己上传的资源链接,然后点击查看跳转到对应的资源挂载点。突然发现使用JS的window.oepn()操作会导致浏览器拦截。

原来当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到一段异步代码内部,就会被拦截。

因此我们通过ajax必须设置成同步模式即可解决。

$.ajax({
     url:url,
       type:'GET',
       async:false,
       contentType:'application/json',
       success:function(res){
         window.open(res.content,'_blank');
       },
       error:function(res){
         console.log(res);
       }
 })
注意:(IE下吊坑)

在IE浏览器下面可能会出现失效的情况,请求出现400 Bad request,这是因为在IE浏览器下不支持URL中协带时间跟中文这种参数,所以最好给地址变下码encodeURI(url)

发布评论

评论列表 (0)

  1. 暂无评论