在新窗口打开链接

有时候后台ajax返回的链接,我们需要在新的浏览器新窗口打开,但是某些浏览器会拦截,这时候我们如下两种方法:

一、ajax设置同步 async: false,

$('#serverBtn').on('click',function(){
    //获取客服地址
    $.ajax({
        type: "POST",
        url: "getHomeCustomerServiceUrl.htm",
        dataType: "json",
        data: {},
        async: false,
        success: function (data) {
            targeturl = data.data;
        }
    })
    _openUrl(serverBtn, targeturl);
});

function _openUrl(objid, targeturl){
    var tag = document.createElement("a");
    tag.href = targeturl;
    tag.target = "_blank";
    tag.id = objid;
    tag.innerHTML = "";
    document.getElementsByTagName("body")[0].appendChild(tag);
    document.getElementById(objid).click();
    $("#"+objid).remove();
}

二、设置定时器

$('#serverBtn').on('click',function(){
    //获取客服地址
    $.ajax({
        type: "POST",
        url: "getHomeCustomerServiceUrl.htm",
        dataType: "json",
        data: {},
        async: true,
        success: function (data) {
            targeturl = data.data;
        }
    })

    // 定时器
    var timer = setTimeout(function () {
        if (targeturl != "") {
            _openUrl(serverBtn, targeturl);
            clearInterval(timer);
        }
    }, 500)
});

function _openUrl(objid, targeturl){
    var tag = document.createElement("a");
    tag.href = targeturl;
    tag.target = "_blank";
    tag.id = objid;
    tag.innerHTML = "";
    document.getElementsByTagName("body")[0].appendChild(tag);
    document.getElementById(objid).click();
    $("#"+objid).remove();
}

你可能感兴趣的:(javascript,跳转,_blank)