[英]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.