html Javascript自定义警报框一次仅显示一个警报

rhfm7lfc  于 2022-12-09  发布在  Java
关注(0)|答案(1)|浏览(189)

根据我的要求,我已经创建了一个自定义的警报消息框在Javascript中。2问题是当我调用两个警报在我的用户定义函数,只有一个警报来。
我的要求是它必须像现有的警报一样工作。这意味着,我们应该显示多少警报;
找到示例代码并帮助我:
第一个

mrphzbgm

mrphzbgm1#

window.alert(默认)将阻止用户访问程序界面的其余部分,直到对话框关闭。所有javascript也将被阻止。当对话框关闭时,js将继续运行。
如果你把默认的alert替换成js函数,它将连续运行两个alert函数。如果你想阻止第一个alert方法,你应该使用async await。
代码如下:

if(document.getElementById) {
    window.alert = async function(txt) { // change method to async
       await createCustomAlert(txt);
    }
}

更改createCustomAlert函数

async function createCustomAlert(txt) {
   ...
    /* if(d.getElementById("modalContainer")) return; */ // youshould comment out it. otherwise the second alert will directly return.
...
   // add promise to listen on btn click event.
    let promise = new Promise((resolve, reject) => {
      btn.addEventListener('click', resolve)
    })
    return promise;
}

更改ful函数

async function ful(){
 await alert('First Alert!'); // waiting for alert dialog close.
 await alert('second Alert!');
}

相关问题