展示后如何自动隐藏警报框?

我想要做的是,如何在显示后的几秒钟内自动隐藏警报框?

我所知道的是,

setTimeout(function() { alert('close'); }, 5000); // This will appear alert after 5 seconds 

没有必要这个我想在几秒钟内显示后消失警报。

需要的场景:

  1. 显示警报

  2. 在2秒钟内隐藏/终止提醒

tldr; jsFiddle演示

警报无法使用此function。 但是,你可以使用一个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",5000); 

你不能用Javascriptclosures一个提示框。

但是,您可以使用窗口来代替:

 var w = window.open('','','width=100,height=100') w.document.write('Message') w.focus() setTimeout(function() {w.close();}, 5000) 

不可能与JavaScript。 正如另一种select从其他答案的build议:考虑使用jGrowl: http : //archive.plugins.jquery.com/project/jGrowl

您也可以尝试通知API。 这是一个例子:

 function message(msg){ if (window.webkitNotifications) { if (window.webkitNotifications.checkPermission() == 0) { notification = window.webkitNotifications.createNotification( 'picture.png', 'Title', msg); notification.onshow = function() { // when message shows up setTimeout(function() { notification.close(); }, 1000); // close message after one second... }; notification.show(); } else { window.webkitNotifications.requestPermission(); // ask for permissions } } else { alert(msg);// fallback for people who does not have notification API; show alert box instead } } 

要使用这个,只需写:

 message("hello"); 

代替:

 alert("hello"); 

注意:请注意,目前只有Chrome,Safari,Firefox和一些移动networking浏览器支持(2014年1月)

在这里find支持的浏览器