如何绕过chrome的弹窗拦截机制

2,280 阅读1分钟

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

例如事件触发的js是不会被拦截的:

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

再例如:

var btn = $('#btn');
btn.click(function () {

    //打开一个不被拦截的新窗口
    var newWindow = window.open();

    $.ajax({
        url: 'ooxx',
        success: function (url) {

            //修改新窗口的url
            newWindow.location.href = url;
        }
    })
});

上面代码中:用户点击一个按钮,新开一个窗口,同第一个例子原理,这也不会被拦截,紧接着在这个新页面发起一个ajax请求,然后在成功返回后,修改页面的URL地址,这样也是ok的,chrome也不会拦截。