Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как добавить задержку появления alert (https://javascript.ru/forum/misc/72915-kak-dobavit-zaderzhku-poyavleniya-alert.html)

12345678 06.03.2018 14:43

Как добавить задержку появления alert
 
Есть вот такой скрипт в теле html

<script type="text/javascript">
if (!('123' in window)) {
    alert('Отключите адблок');
}
</script>


И подключенный JS файл advert.js с единственной строчкой:
window.123 = false;


Если данный файл не загружается (заблокирован к загрузке соответствующим расщирением), то выскакивает алерт.

Мне кажется, что скрипт срабатывает слишком быстро, что страница даже не успевает полностью прорисоваться. Я не программист, не знаю как объяснить.
Но пока не нажмёшь, остальное не отобразится, по крайней мере в Хром. Наиболее явно это начинает происходить при просмотре второй и последующих страниц. Видимо после открытия сайта скрипты кешируются и технически (код) успевает загружаться, а вот прорисовываться сама страница в браузере ещё нет.

Это может смутить посетителя. Как отсрочить появление данного сообщения?

Dilettante_Pro 06.03.2018 15:34

12345678,
Смотрите https://learn.javascript.ru/onload-ondomcontentloaded

j0hnik 06.03.2018 16:26

<script type="text/javascript">
if (!('123' in window)) {
    setTimeout("alert('Отключите адблок')",2000);
}
</script>

Dilettante_Pro 06.03.2018 16:49

j0hnik,
зачем же таймаут, если ему нужно по загрузке страницы?

j0hnik 06.03.2018 17:47

Ему вроде как задержка нужна.

j0hnik 06.03.2018 17:50

Dilettante_Pro,
Смотрите https://learn.javascript.ru/onload-ondomcontentloaded

к сожалению данные способы не гарантируют полный рендринг ( например если что то на странице подгружается ajax-ом)

12345678 07.03.2018 00:10

j0hnik
Спасибо! Задержка сгодится. Мне главное чтобы сама страничка более менее подгрузилась. Ведь всё равно пока не нажмёшь на OK у появившегося алерта, ничего нельзя сделать будет. Главное что за период задержки подгрузится сам HTML и не будет создаваться видимого эффекта "обрубленной" страницы :-)


Часовой пояс GMT +3, время: 14:27.