Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

  

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

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

Попробуйте плагин загрузочной коробки.

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

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

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

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

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

window.setTimeout('alert("Message goes here");window.close();', 5000);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top