显示后如何自动隐藏警告框?

时间:2013-03-17 22:05:53

标签: javascript

我想做的就是,如何在显示后的特定秒内自动隐藏提示框?

我所知道的是,

setTimeout(function() { 
      alert('close'); 
}, 5000);

// This will appear alert after 5 seconds

不需要这个我想在几秒钟内显示它后消失警告。

需要的方案:

  1. 显示提醒

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

4 个答案:

答案 0 :(得分:22)

tldr;的 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",5000);

答案 1 :(得分:2)

您无法使用Javascript关闭提醒框。

但是,您可以改为使用窗口:

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

答案 2 :(得分:2)

不可能使用javascript。 正如其他答案的建议的另一种选择:考虑使用jGrowl:http://archive.plugins.jquery.com/project/jGrowl

答案 3 :(得分:1)

您也可以尝试使用Notification 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和一些移动网络浏览器(jan.2014)

查找支持的浏览器here.