如何绕过浏览器的拦截

2019-02-21  本文已影响0人  liuchungui

最近做一个功能,需要在用户点击按钮之后,服务器处理一些事情后,给用户弹出一个窗口操作,但是Chrome毫不留情就把窗口拦截了。除非,用户主动给你开启允许弹窗的权限。但,往往用户并不知道怎么操作,那作为开发的我们如何绕过浏览器的拦截呢?

首先,经过查阅和分析,用户主动点击按钮弹出来的框会被拦截;而我们请求数据后或在定时器中写的弹框会被拦截。

基于上面,我们可以使用两种方式绕过浏览器的拦截。

第一种,当用户点击之后,立马打开一个新的空白页面窗口,然后请求数据,等操作完成后将数据灌入新的窗口,实现如下:

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

注:代码来源于 如何绕过chrome的弹窗拦截机制

这种方式的好处是直接打开了一个新的窗口,不过,要做的流畅,需要在新的空白页面下功夫。例如,在空白页面导入一个加载的动画,让用户耐心等待一下。

第二种,当处理完数据之后,弹出一个Alert,让用户点击,从而顺利进入想要的页面

这种方式实现起来比较简单,只是给用户多了一个点击的操作。

最后

最后,我们选择了第一种,能节省一步,就尽量为用户节省一步。

上一篇下一篇

猜你喜欢

热点阅读