有没有办法自动关闭javascript alert()
?
我有警告
alert("Error found");
我想在几秒钟之后关闭它。这是可能的还是我应该去jQuery对话
答案 0 :(得分:9)
<强> jsFiddle Demo 强>
警报无法使用此功能。但是,您可以使用div
function tempAlert(msg,duration)
{
var el = document.createElement("div");
el.setAttribute("style","position:absolute;top:40%;left:20%;background-color:white;");
el.innerHTML = msg;
setTimeout(function(){
el.parentNode.removeChild(el);
},duration);
document.body.appendChild(el);
}
像这样使用:
tempAlert("close",1000);
答案 1 :(得分:3)
基本上,您可以模仿一个带有弹出窗口的警报框,并在需要时将其关闭,请调用以下函数:
function myAlert(msg,title,width,height,timeout) {
var myWindow = window.open("", "",`width=${width},height=${height},left=${(window.outerWidth/2-width/2)},top=0`); //open a new popup at the top height and middle width of the current window
myWindow.document.write(`<center id="msg">`+msg+`</center>`); //write the message you want to display
myWindow.document.title = title; //write the title of the alert box
setTimeout(function(){
myWindow.close(); //close the popup
},timeout||3000) //in 3 secondes (3000 milliseconds)
}
如果您想在调用时关闭警报,只需使用前面定义的变量“ myWindow”(在myAlert()函数之外)作为全局变量,然后在已经调用myAlert后调用myWindow.close();
()并删除
setTimeout(function(){
myWindow.close(); //close the popup
},timeout||3000) //in 3 secondes (3000 milliseconds)
来自函数myAlert()
答案 2 :(得分:2)
您无法关闭警报。
但您可以使用div来显示警报MSG。
function Mymsg(msg,duration)
{
var alt = document.createElement("div");
alt.setAttribute("style","position:absolute;top:50%;left:50%;background-color:white;");
alt.innerHTML = msg;
setTimeout(function(){
alt.parentNode.removeChild(alt);
},duration);
document.body.appendChild(alt);
}
您可以使用as:
Mymsg('close',2000)
答案 3 :(得分:0)
我更新了样式设置,因此它在页面中心像初始屏幕一样显示,并将文本居中显示在其中。
这样称呼它:
alertTimeout("System Message<br>This is a test message<br>This alert will auto-close",5000)
功能:
function alertTimeout(mymsg,mymsecs)
{
var myelement = document.createElement("div");
myelement.setAttribute("style","background-color: grey;color:black; width: 450px;height: 200px;position: absolute;top:0;bottom:0;left:0;right:0;margin:auto;border: 4px solid black;font-family:arial;font-size:25px;font-weight:bold;display: flex; align-items: center; justify-content: center; text-align: center;");
myelement.innerHTML = mymsg;
setTimeout(function(){
myelement.parentNode.removeChild(myelement);
},mymsecs);
document.body.appendChild(myelement);
}