Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2018, 14:43
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

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

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


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


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

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

Это может смутить посетителя. Как отсрочить появление данного сообщения?
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2018, 15:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

12345678,
Смотрите https://learn.javascript.ru/onload-ondomcontentloaded
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2018, 16:26
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script type="text/javascript">
if (!('123' in window)) {
    setTimeout("alert('Отключите адблок')",2000);
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2018, 16:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

j0hnik,
зачем же таймаут, если ему нужно по загрузке страницы?
Ответить с цитированием
  #5 (permalink)  
Старый 06.03.2018, 17:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Ему вроде как задержка нужна.
Ответить с цитированием
  #6 (permalink)  
Старый 06.03.2018, 17:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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

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

Последний раз редактировалось j0hnik, 06.03.2018 в 17:58.
Ответить с цитированием
  #7 (permalink)  
Старый 07.03.2018, 00:10
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить данные в глобальный массив из функции Jigan2 jQuery 2 14.03.2015 18:06
Как вывести всю информацию цветов абзацев в одном alert ? Phoenix13 jQuery 5 18.11.2014 14:53
Как добавить методы объекту после конструирования. DragorWW Общие вопросы Javascript 23 21.01.2013 20:39
Как добавить атрибут к ссылке hell100 Общие вопросы Javascript 2 20.06.2012 16:51
Как добавить свой блог в раздел feeds этого сайта IzumeRoot Ваши сайты и скрипты 13 30.10.2008 21:11