簡體   English   中英

如何延遲使用 Javascript 制作的警報框?

[英]How do I put a delay on an Alert Box made with Javascript?

如果有人使用 Internet Explorer 進入網站,我會彈出一個警告框。 我遇到的問題是警報會立即顯示,因此有時當警報出現時,以前的網站仍然可見。 我需要延遲,以便網站可以在警報出現之前加載 - 或者僅在所有內容加載后才顯示。 我使用 WordPress。

我已經嘗試了很多我在網上找到的代碼,但不幸的是,它們都沒有對我有用,主要是因為我不知道如何將它“包含”到我已經擁有的代碼中(我從不同的 Stack Overflow 線程中獲得)

function isIE() {
  ua = navigator.userAgent;

  /* MSIE used to detect old browsers and Trident used to newer ones*/
  var is_ie = ua.indexOf("MSIE ") > -1 || ua.indexOf("Trident/") > -1;

  return is_ie; 
}
/* Create an alert to show if the browser is IE or not */
if (isIE()){
    alert('MY ALERT MESSAGE');
}

我希望在加載頁面后以延遲或使用 onload 的形式顯示警報。 “僅”Javascript 是首選,因為我使用不喜歡 jQuery 的網頁構建器。

將您的語句包裝在 setTimeout 中。 時間以毫秒為單位

if (isIE()){
    setTimeout(function () {
        alert('MY ALERT MESSAGE');
    }, 1000);
}

我推薦在頁面底部添加script標簽,或者使用body元素的onload

在這兩種情況下,警報都會在 html 到達用戶之后出現。


另一種更優雅的方法可能是自己制作一個小模態,即創建自己的“警報”。 默認情況下,您隱藏它,並在用戶擁有 IE 時顯示它:

// CSS
#browserWarning{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%);
    background: #FFF;
    padding: 25px;
}

// Javascript
if (isIE()){
    document.getElementById("browserWarning").style.display = 'block';
}

您現在可以創建看起來更好的東西,允許更多的解釋(我假設“IE 不支持,因為”這里的消息),並且因為它是非阻塞的,所以頁面的其余部分會繼續加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM