Окно предупреждения о закрытии Javascript

Я хочу иметь возможность автоматически закрывать окно предупреждения с помощью Javascript через определенное время или при определенном событии (например, onkeypress). Судя по моим исследованиям, это невозможно со встроенной функцией alert(). Есть ли способ отменить его и контролировать открываемое диалоговое окно?

Кроме того, мне не нужно переопределение, которое показывает скрытый div в качестве предупреждения. Мне нужно настоящее диалоговое окно.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
38
0
104 147
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Я думаю, вы могли бы открыть всплывающее окно и вызвать что диалоговое окно. Я не уверен в деталях, но уверен, что вы можете программно закрыть окно, открытое с помощью javascript. Этого было бы достаточно?

Хорошая работа, но OP хотел только диалоговое окно с предупреждением. Но это должно быть сделано для тех, кто хочет контролировать диалоги. +1

GoodSp33d 30.05.2013 15:55

нет контроля над диалоговым окном, если бы у вас был контроль над диалоговым окном, вы могли бы написать навязчивый код javascript. (Не рекомендуется использовать оповещение ни для чего, кроме отладки)

Теперь ... Признаюсь, я все еще делаю это время от времени, но ... правда? Предупреждение об отладке? Ты что пропагандируя?

eyelidlessness 24.09.2009 10:51
alert() идеально подходит для отладки. В прошлый раз я использовал его при написании userjs на своем iPad @ office. Дай бог бдительности ()! :)
A.D. 10.03.2015 09:59

Я считаю, что и alert, и console.info могут быть полезны в разных ситуациях. Однако никогда не используйте alert(); в цикле. Хороший способ разбить компьютер :)

www139 07.04.2018 07:52

Если вы сделаете это программно на JS, это будет похоже на изобретение колеса. Я рекомендую использовать плагин jQuery под названием jGrowl

jGrowl просто отображает встроенный div. Мне нужно диалоговое окно. Спасибо хоть.

Andrew Ensley 21.01.2009 01:32

I want to be able to close an alert box automatically using javascript after a certain amount of time or on a specific event (i.e. onkeypress)

Замечание: если у вас есть оповещение («данные»), вы не сможете сохранить код, работающий в фоновом режиме (AFAIK) .... диалоговое окно является модальным окном, поэтому вы также не можете потерять фокус. Так что у вас не будет ни нажатия клавиш, ни таймера ...

Мое окно предупреждения будет активировано асинхронным событием, поэтому это не должно быть проблемой (теоретически).

Andrew Ensley 21.01.2009 01:30

JavaScript не асинхронный. Вызов предупреждения / подтверждения / приглашения останавливает всю обработку скриптов (а зачастую и весь веб-браузер) до тех пор, пока пользователь не ответит.

bobince 21.01.2009 02:10

@bobince JavaScript допускает поведение асинхронный; но это не многопоточный. Если поток зависает в блоке кода - асинхронно или нет - весь код будет заморожен в этой точке.

jpaugh 23.07.2015 21:42

Единственная реальная альтернатива здесь - использовать какой-то настраиваемый виджет с модальной опцией. Взгляните на пользовательский интерфейс jQuery, чтобы увидеть пример диалога с этими функциями. Подобные вещи существуют практически во всех JS-фреймворках, которые вы можете упомянуть.

Я знаю, но, к сожалению, это единственный способ справиться с этим в JavaScript.

Toby Hede 21.01.2009 06:41

Не нужно раздражаться, вы задали вопрос, а я сказал, что это невозможно, а это невозможно, и предложил альтернативу.

Toby Hede 22.01.2009 08:50

Вау ... годы спустя, я не могу поверить, насколько я был идиотом. Извини, что я был таким придурком, когда все, что ты пытался сделать, это помочь.

Andrew Ensley 14.02.2012 22:42
Ответ принят как подходящий

Как упоминалось ранее, вы действительно не можете этого сделать. Вы можете создать модальный диалог внутри окна, используя структуру пользовательского интерфейса, или у вас может быть всплывающее окно со скриптом, который автоматически закрывается после тайм-аута ... у каждого есть отрицательный аспект. Модальное окно внутри браузера не будет создавать никаких уведомлений, если окно свернуто, а программное всплывающее окно (основанное на таймере), вероятно, будет заблокировано современными браузерами и блокировщиками всплывающих окон.

Вы можете использовать ярлык и установить время его появления и исчезновения, например, Скрыть его изначально и отображать при нажатии. $ ('# div_Message'). fadeIn (500) .delay (1000) .fadeOut (1500);

Похоже, вы можете добиться чего-то подобного с помощью Уведомление API. Вы не можете контролировать, как долго он остается видимым (возможно, это какое-то предпочтение ОС - если вы не укажете requireInteraction true, тогда он останется навсегда или до тех пор, пока он не будет закрыт или пока вы его не закроете), и для этого требуется, чтобы пользователь щелкнул "разрешить" уведомления »(к сожалению) первым, но вот оно:

Если вы хотите, чтобы он закрывался через 1 с (все ОС оставляют его открытым как минимум 1 с):

var notification = new Notification("Hi there!", {body: "some text"});
setTimeout(function() {notification.close()}, 1000);

Если вы хотите показать его дольше, чем «по умолчанию», вы можете привязать его к обратному вызову onclose и показать другое повторное уведомление, я полагаю, чтобы заменить его.

Ссылка: вдохновлено ответом это, хотя этот ответ больше не работает в современном Chrome, но API уведомлений работает.

Флаг requireinteraction также «предполагается», чтобы он оставался включенным бесконечно (пока они не закроют его или вы не сделаете это с помощью метода #close) FWIW (в OS .X тайм-аут по умолчанию составляет 5 секунд FWIW)

rogerdpack 06.01.2018 00:41
window.setTimeout('alert("Message goes here");window.close();', 5000);

Попробуйте плагин boot box.

var alert = bootbox.alert('Massage')
alert.show();
setTimeout(function(){alert.modal('hide'); }, 4000);

Вы действительно можете это сделать, вы можете просто прослушать это всплывающее окно, а затем подтвердить его истинность, прежде чем оно когда-либо «всплывет»,

if (window.alert){
  return true
}

Другие вопросы по теме