Javascript 创建自定义确认框时Jquery代码未停止

Javascript 创建自定义确认框时Jquery代码未停止,javascript,jquery,Javascript,Jquery,我正在尝试创建一个自定义确认框,以匹配我的网站的外观和感觉 这是我的密码 customconfirm.js function CustomConfirm(dialog){ console.log("in CustomConfirm") var result; console.log("in render") var winW = window.outerWidth; var winH = window.outerHeight; var dialogoverlay = document.getEl

我正在尝试创建一个自定义确认框,以匹配我的网站的外观和感觉 这是我的密码

customconfirm.js

function CustomConfirm(dialog){
console.log("in CustomConfirm")
var result;
console.log("in render")
var winW = window.outerWidth;
var winH = window.outerHeight;
var dialogoverlay = document.getElementById('dialogoverlay');    
var dialogbox = document.getElementById('dialogbox');
dialogoverlay.style.display = "block";
dialogoverlay.style.height = winH+"px";
dialogbox.style.left = (winW/2) - (550 * 0.5)+"px";
dialogbox.style.top = "250px";
dialogbox.style.display = "block";
document.getElementById('dialogboxhead').innerHTML = '<img src="" alt="logo" height="20" width="20"> Heading';
document.getElementById('dialogboxbody').innerHTML = dialog;
document.getElementById('dialogboxfoot').innerHTML = '<button onclick="Confirmyes()">Yes</button><button onclick="Confirmno()">No</button>';
console.log("render end")}

function Confirmno(){
console.log("in no")    
document.getElementById('dialogbox').style.display = "none"; 
document.getElementById('dialogoverlay').style.display = "none";
processResult(false);
console.log("no ended");}

function Confirmyes(){
console.log("in yesss")
document.getElementById('dialogbox').style.display = "none"; 
document.getElementById('dialogoverlay').style.display = "none";
processResult(true);
console.log("yes ended");}

function processResult(r) {
result = r;
alert(result);
return result;}
每当我调用CustomConfirm时,它总是在控制台中显示'Result=Undefined'。而不是true或false,这意味着它不等待用户选择yes或no


如何暂停CustomConfirm功能,以便在r&do next thing中使用该值存储该值?

confirm是同步的。它会阻止执行流,直到用户单击对话框上的按钮。您不能复制此行为。您的对话框总是异步工作。在这个问题上有很多问题。您的对话框需要接受成功/失败回调,或返回承诺,或异步代码所做的任何其他事情。看看它,但在我看来,结果并不在这些函数之外,可能这就是问题所在,它与您期望的变量不同。重复:
var r = CustomConfirm("Do you really want to delete Player\n'" + player_name + "' ?");
if (r == true){
    console.log(r);
}
elseif (r == false){
    console.log(r);
}
console.log("Result = " + r);