Как поместить задержку в ящик оповещений, созданный с помощью Javascript? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть окно предупреждения, которое появляется, если кто-то заходит на веб-сайт с помощью 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.Javascript «только» предпочтительнее, так как я работаю с конструктором веб-страниц, который не любит jQuery.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Я рекомендую добавить тег сценария внизу страницы или использовать onload элемента body.

В обоих случаях предупреждение будет появляться после того, как 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 неподдерживается, потому что "сообщения здесь), и потому что это не блокирует, остальная часть вашей страницы продолжает загружаться.

0 голосов
/ 24 июня 2019

Оберните ваше утверждение в setTimeout.Время в миллисекундах

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