Pregunta

Deseo poder cerrar un cuadro de alerta automáticamente usando javascript después de un cierto tiempo o en un evento específico (es decir, al presionar una tecla). Según mi investigación, no parece que eso sea posible con la función de alerta incorporada (). ¿Hay alguna forma de anularlo y tener control sobre el cuadro de diálogo que se abre?

Además, no quiero una anulación que muestre un div oculto como alerta. Necesito un cuadro de diálogo real.

¿Fue útil?

Solución

Como se mencionó anteriormente, realmente no puede hacer esto. Puede hacer un diálogo modal dentro de la ventana utilizando un marco de interfaz de usuario, o puede tener una ventana emergente, con un script que se cierra automáticamente después de un tiempo de espera ... cada uno tiene un aspecto negativo. La ventana modal dentro del navegador no creará ninguna notificación si la ventana está minimizada, y es probable que los navegadores modernos y los bloqueadores de ventanas emergentes bloqueen una ventana emergente programática (basada en temporizador).

Otros consejos

Parece que puede lograr algo similar con la Notificación API. No puede controlar cuánto tiempo está visible (probablemente una preferencia de sistema operativo de algún tipo, a menos que especifique requireInteraction true), y requiere que el usuario haga clic en "permitir notificaciones". (lamentablemente), pero aquí está:

Si quiere que se cierre después de 1s:

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

Si desea mostrarlo más tiempo que el " predeterminado " podría unirse a la devolución de llamada cerrada y mostrar otra notificación de repetición, supongo, para reemplazarla.

Ref: inspirado en esta respuesta, aunque esa respuesta ya no funciona en Chrome moderno, sino en la API de notificaciones lo hace.

sin control sobre el cuadro de diálogo, si tuviera control sobre el cuadro de diálogo, podría escribir un código JavaScript molesto. (No es una buena idea usar la alerta para nada excepto para la depuración)

  

Quiero poder cerrar una alerta   caja automáticamente usando javascript   después de un cierto período de tiempo o en un   evento específico (es decir, onkeypress)

Una nota al margen: si tiene una Alerta (" data "), no podrá mantener el código ejecutándose en segundo plano (AFAIK) .... el cuadro de diálogo es una ventana modal, por lo que no puede perder el foco también. Por lo tanto, no tendrá ninguna pulsación de tecla o temporizador en ejecución ...

Pruebe el complemento de la caja de arranque.

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

Supongo que podría abrir una ventana emergente y llamar a eso un cuadro de diálogo. No estoy seguro de los detalles, pero estoy bastante seguro de que puede cerrar una ventana mediante programación que abrió desde javascript. ¿Sería esto suficiente?

La única alternativa real aquí es usar algún tipo de widget personalizado con una opción modal. Eche un vistazo a jQuery UI para ver un ejemplo de diálogo con estas características. Existen cosas similares en casi todos los marcos JS que puede mencionar.

Si lo haces programáticamente en JS será como reinventar la rueda. Recomiendo usar un jQuery plugin llamado jGrowl

Puede usar la etiqueta y establecer su tiempo de entrada y salida para, por ejemplo, Escóndelo inicialmente y muestra al hacer clic. $ ('# div_Message'). fadeIn (500) .delay (1000) .fadeOut (1500);

window.setTimeout('alert("Message goes here");window.close();', 5000);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top