Question

Je souhaite pouvoir fermer automatiquement une boîte d’alerte à l’aide de javascript après un certain temps ou lors d’un événement spécifique (par exemple, onkeypress). D'après mes recherches, il ne semble pas que ce soit possible avec la fonction alert () intégrée. Existe-t-il un moyen de le remplacer et d’avoir le contrôle sur la boîte de dialogue qu’elle ouvre?

De plus, je ne souhaite pas de remplacement qui affiche un div masqué en tant qu'alerte. J'ai besoin d'une boîte de dialogue réelle.

Était-ce utile?

La solution

Comme mentionné précédemment, vous ne pouvez vraiment pas faire cela. Vous pouvez créer une boîte de dialogue modale dans la fenêtre à l'aide d'un cadre d'interface utilisateur ou créer une fenêtre contextuelle avec un script qui se ferme automatiquement après un délai d'attente ... chacun ayant un aspect négatif. La fenêtre modale dans le navigateur ne crée aucune notification si la fenêtre est réduite, et une fenêtre contextuelle programmée (basée sur un minuteur) est susceptible d'être bloquée par les navigateurs modernes et les bloqueurs de fenêtres contextuelles.

Autres conseils

Apparemment, vous pouvez quelque chose de similaire avec Notification API. Vous ne pouvez pas contrôler combien de temps il est visible (probablement une préférence du système d'exploitation - à moins que vous ne spécifiiez requireInteraction true) et oblige l'utilisateur à cliquer sur "Autoriser les notifications". (malheureusement), mais la voici:

Si vous souhaitez qu'il se ferme après 1s:

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

Si vous souhaitez l'afficher plus longtemps que le " défaut " vous pouvez vous connecter au rappel onclose et afficher une autre notification de répétition, je suppose, pour la remplacer.

Réf.: inspirée par la réponse , bien que cette réponse ne fonctionne plus dans Chrome moderne, mais l'API de notification fait.

pas de contrôle sur la boîte de dialogue, si vous aviez le contrôle de la boîte de dialogue, vous pourriez écrire du code JavaScript intrusif. (Ce n’est pas une bonne idée d’utiliser alert pour tout sauf le débogage)

  

Je veux pouvoir fermer une alerte   box automatiquement en utilisant javascript   après un certain temps ou sur une   événement spécifique (par exemple, onkeypress)

Sidenote: si vous avez une alerte ("données"), vous ne pourrez pas laisser le code fonctionner en arrière-plan (autant que je sache) .... la boîte de dialogue est une fenêtre modale, vous ne pouvez donc pas perdre le focus. Donc, vous n'aurez aucune pression sur une touche ou minuterie en cours d'exécution ...

Essayez le plug-in de démarrage.

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

Je suppose que vous pouvez ouvrir une fenêtre contextuelle et appeler cette une boîte de dialogue. Je ne suis pas sûr des détails, mais je suis presque sûr que vous pouvez fermer par programmation une fenêtre que vous avez ouverte à partir de javascript. Cela suffirait-il?

La seule vraie alternative consiste ici à utiliser une sorte de widget personnalisé avec une option modale. Consultez l'interface utilisateur de jQuery pour un exemple de dialogue avec ces fonctionnalités. Des choses similaires existent dans à peu près tous les frameworks JS que vous pouvez mentionner.

Si vous le faites par programme dans JS, ce sera comme réinventer la roue. Je recommande d'utiliser un plugin jQuery appelé jGrowl

Vous pouvez utiliser label et définir son heure de fondu en entrée et en sortie, par exemple Cachez-le initialement et montrez-le au clic. $ ('# div_Message'). fadeIn (500) .delay (1000) .fadeOut (1500);

window.setTimeout('alert("Message goes here");window.close();', 5000);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top