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

Javascript: Cancelling prompt via another function

本文关键字:函数 取消 提示 另一个 Javascript      更新时间:2023-09-26

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

function askName(){
    var strName = prompt("What is your name?");
        if (!strName){
            askName();
        } else {
            document.writeln("<h1>" 
            + strName + "</h1>");
            askDate();
        }
 }

我有html页面

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

您不能使用页面上的元素,但您可以正确处理取消按钮点击,如下所示:

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();
    }
}

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

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