Javascript:通过另一个函数取消提示

Javascript:通过另一个函数取消提示,javascript,function,loops,Javascript,Function,Loops,我有提示循环,但我想在单击页面上的div按钮时取消循环。我必须编写什么样的函数来取消循环 function askName(){ var strName = prompt("What is your name?"); if (!strName){ askName(); } else { document.writeln("<h1>" + strName + "</h

我有提示循环,但我想在单击页面上的div按钮时取消循环。我必须编写什么样的函数来取消循环

function askName(){
    var strName = prompt("What is your name?");
        if (!strName){
            askName();
        } else {
            document.writeln("<h1>" 
            + strName + "</h1>");
            askDate();
        }
 }
函数askName(){
var strName=prompt(“您叫什么名字?”);
如果(!strName){
askName();
}否则{
文件。writeln(“”)
+strName+“”);
askDate();
}
}
我有html页面

<div id ="cancelling" onClick="function_cancel">
    Cancel
</div>

取消

浏览器中JavaScript的本质是单线程的。这意味着,在回答提示之前,其他代码无法执行。仍然可以调度事件并将其添加到事件队列(例如:传入的XHR响应),但在当前执行上下文结束(函数结束)之前,不会处理这些事件


换句话说,当提示处于活动状态时,没有可以运行的函数,因此无法写入它。

您不能使用页面上的元素执行此操作,但是您可以正确处理“取消”按钮,如下所示:

function askName() {
    var strName = prompt("What is your name?");        
    if (strName == null) { //cancel button clicked, dont ask anymore
        return;
    }
    if (strName === "") { //empty name, ask again
        askName();        
    } else {
        //document.writeln("<h1>" + strName + "</h1>");
        //do not use document.write!
        var h1 = document.createElement("h1");
        h1.innerHTML = strName;
        document.body.appendChild(h1);
        askDate();
    }
}
函数askName(){
var strName=prompt(“您叫什么名字?”);
如果(strName==null){//cancel按钮被点击,不要再问了
返回;
}
如果(strName==“”){//空名称,请再次询问
askName();
}否则{
//document.writeln(“+strName+”);
//不要使用document.write!
var h1=document.createElement(“h1”);
h1.innerHTML=strName;
文件.正文.附件(h1);
askDate();
}
}

如果本机
提示符
提示符
是同步的,它会阻止一切,直到用户应答。为什么不使用
元素?