Ящик для предупреждения Javascript

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

Появляется, что вы можете немного выполнить что-то подобное с API Notification. Вы не можете контролировать, сколько времени оно видимо (возможно, предпочтение OS), и для этого пользователю требуется щелкнуть "Разрешить уведомления" (к сожалению), но вот он:

Если вы хотите, чтобы он закрылся через 1 с:

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

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

Попробуйте подключиться к плагину.

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

Ответ 9

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

Ответ 10

window.setTimeout('alert("Message goes here");window.close();', 5000);