如何在用Javascript制作的警报框上放置延迟?

时间:2019-06-24 12:47:47

标签: javascript jquery alert delay onload

如果有人使用Internet Explorer进入网站,我会弹出一个警告框。我遇到的问题是警报立即显示,因此有时在警报显示时仍可以看到以前的网站。我需要延迟一下,以便网站可以在警报显示之前加载-或仅在加载所有内容后才显示。我使用Wordpress。

我尝试了很多在网上找到的代码,但是不幸的是,这些代码对我没有用,主要是因为我不知道如何将“包含”到我已经拥有的代码中(我是从另一个堆栈中获得的)溢出线程)

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的形式显示警报。首选Java语言“ only”,因为我使用的是不喜欢jQuery的网页构建器。

2 个答案:

答案 0 :(得分:0)

我建议在页面底部添加脚本标签,或使用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,因为”消息),并且由于它是非阻塞的,因此页面的其余部分继续加载

答案 1 :(得分:-1)

在setTimeout中包装语句。时间以毫秒为单位

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