Javascript 如何在警报框显示后自动隐藏它?

Javascript 如何在警报框显示后自动隐藏它?,javascript,Javascript,我想做的就是,如何在显示警报框后的特定秒内自动隐藏警报框 我只知道 setTimeout(function() { alert('close'); }, 5000); // This will appear alert after 5 seconds 不需要这个,我想在几秒钟内显示警报后消失 需要的场景: 显示警惕 在2秒内隐藏/终止警报 不能用Javascript关闭警报框 但是,您可以使用窗口来代替: var w = window.open('','','width=10

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

我只知道

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

// This will appear alert after 5 seconds
不需要这个,我想在几秒钟内显示警报后消失

需要的场景:

  • 显示警惕

  • 在2秒内隐藏/终止警报


  • 不能用Javascript关闭警报框

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

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

    此功能不适用于警报。但是,您可以使用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);
    

    用javascript是不可能的。
    作为另一个替代其他建议的建议:考虑使用JGNLL:

    ,您也可以尝试通知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和一些移动网络浏览器支持它(2014年1月)


    查找受支持的浏览器

    大多数弹出窗口阻止程序将阻止新窗口显示…非常感谢您的支持Doorknow先生,但我需要的是警报本身而不是自定义警报示例:1-显示警报2-在2之后隐藏警报seconds@MaherNajiEl-加利,那你不能。没有办法用JS关闭警报。谢谢Travis,我需要警报而不是自定义警报。到目前为止,它离解决方案太近了,我将尝试它。hi am在parentNode上变为null…在el.parentNode.removeChild(el)行上;。。如何修复它。嗯。。有意思,这是不是像麦克咆哮一样,我将在未来使用此资源,谢谢Alexyes先生,它是一个jQuery插件,显示的消息看起来像咆哮消息。它是可固定和灵活的。内置了“n秒后消失”行为以及永久消息。试试看)这在“今天的Chrome”中似乎不起作用,但它可能已被新的通知API所取代,该API在某种程度上符合要求,这是一个好主意,启发了以下答案: