简体   繁体   中英

Opening a page popup on ajax success

I am doing a project and im having problem with window.open. The problem is window.open doesnt work in my schema. i need a help on this,

swal({
    title: "Submit Data ?",
    text: "Process only if you are sure",
    type: "warning",
    showCancelButton: true,
    confirmButtonColor: "#DD6B55",
    confirmButtonText: "Yes, Submit!",
    cancelButtonText: "No, Cancel!",
    closeOnConfirm: false,
    closeOnCancel: false
},
function(isConfirm){
    if (isConfirm) {
        insertData();
        swal("SUCCESS", "Data Has Been Submitted", "success");
        window.open("http://188.109.156.21/execution.php?str=james");
    } else {
        swal("CANCELLED", "", "error");
    }
});

function insertData(){
    $.ajax({
        type: 'POST',
        url: "../../../html/main/divpages/submit_data.php",
        data: sentReq,
        dataType: 'JSON',
        success: function (response, textStatus, jqXHR) {
            if (response.indexOf("GAGAL") == -1) {
                window.location.href = "main.php";
            } else {
                alert("GAGAL INSERT");
            }
        }
    });
}

so i can execute insertData() with no problem.but the problem lies when executin windows.open inside swal(). i dont see any window popup is opening.

It's the popup-blocking logic in action that browsers use. You have to attach window.open directly on onClick event.

Use something like this:

var checkSuccess = false;

$('#button').on("click", function(){
    $.ajax({
      type: 'POST',
      url: "your url",
      async:false,
      success: function(){ 
         checkSuccess = true;
         //YOUR LOGIC
      }
    });
    if(checkSuccess){
      window.open("http://188.109.156.21/execution.php?str=james");
    }
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM