日期:2014-05-16  浏览次数:20273 次

关于浏览器拦截弹出窗口的问题(谢谢帮忙!)

function GoToOAuth(oid) {
    $.ajax({
        type: "POST",
        url: ajaxPath + "GoToOAuth",
        data: { oid: oid },
        beforeSend: function () {
            ShowMsg(true, 1, "正在通讯...");
        },
        error: function (state) {
            ShowMsg(true, 2, "请求异常...");
            return false;
        },
        success: function (res) {
            if (res.indexOf("http") == -1) {
                ShowMsg(true, 2, "操作失败...");
                return false;
            }
            else {
                ShowMsg(false, 1, "正在通讯...");
                window.location.href = "http://"+res;  问题在这里 问题在这里
                return false ;
            }
        },
        complete: function () {

        }
    });
}

ajax 利用 腾讯帐户登陆, 重点不是代码, 返回的 res是一个地址如下:
openapi.qzone.qq.com/oauth/qzoneoauth_authorize?oauth_token=8440383638902015249&oauth_callback=%2foauth%2fQQCallback.aspx&oauth_consumer_key=100358767
问题就是每次执行这里,都会被谷歌当作弹出窗口拦截了(允许以后就可以看到),但是我就是不知道为什么,为什么会被拦截呢? 自己写一个跳转小程序,直接用window.location.href 跳到百度就不会被拦截,有没有大神知道为啥》?

------解决方案--------------------
设置location应该不会拦截吧,window.open就不行了
------解决方案--------------------
window.open 要有用户点击动作发生,否则.....