Fermeture de la boîte d'alerte Javascript
je veux être capable de fermer une boîte d'alerte automatiquement en utilisant javascript après un certain temps ou sur un événement spécifique (i.e. onkeypress). D'après mes recherches, il ne semble pas que ce soit possible avec la fonction d'alerte intégrée (). Est-il un moyen de la contourner et de contrôle sur la boîte de dialogue qui s'ouvre?
en outre, Je ne veux pas d'un override qui montre une div cachée comme l'alerte. J'ai besoin d'une véritable boîte de dialogue.
10 réponses
Comme mentionné précédemment, vous ne pouvez vraiment pas faire cela. Vous pouvez faire un dialogue modal à l'intérieur de la fenêtre en utilisant un framework UI, ou vous pouvez avoir une fenêtre popup, avec un script qui se ferme automatiquement après un timeout... chacun a un aspect négatif. La fenêtre modale à l'intérieur du navigateur ne créera aucune notification si la fenêtre est minimisée, et un popup programmatique (basé sur la minuterie) est susceptible d'être bloqué par les navigateurs modernes, et les bloqueurs popup.
pas de contrôle sur la boîte de dialogue, si vous aviez le contrôle sur la boîte de dialogue, vous pourriez écrire un code javascript gênant. (Sa n'est pas une bonne idée d'utiliser d'alerte pour tout sauf pour le débogage)
Apparaît, vous pouvez accomplir quelque peu quelque chose de similaire avec les Notification API. Vous ne pouvez pas contrôler combien de temps il est visible (probablement une préférence D'OS d'une certaine sorte--sauf si vous spécifiez requerinteraction true), et il exige que l'utilisateur clique sur "Autoriser les notifications" (malheureusement), mais ici il est:
Si vous souhaitez fermer après 1s:
var notification = new Notification("Hi there!", {body: "some text"});
setTimeout(function() {notification.close()}, 1000);
si vous voulez l'Afficher plus longtemps que le "default" vous pouvez vous lier au callback onclose et afficher une autre notification je suppose, pour la remplacer.
Ref: inspiré par réponse, bien que cette réponse ne fonctionne plus dans le Chrome moderne, mais l'API de Notification le fait.
je veux être capable de fermer une alerte boîte automatiquement à l'aide de javascript après un certain temps ou sur événement spécifique (i.e. onkeypress)
un sidenote: si vous avez une alerte ("data"), vous ne pourrez pas garder le code en arrière-plan (AFAIK)... . la boîte de dialogue est une fenêtre modale, donc vous ne pouvez pas perdre la mise au point aussi. Donc vous n'aurez pas de clavier ou de minuterie...
je pense que l'on peut ouvrir une fenêtre pop-up call une boîte de dialogue. Je ne suis pas sûr des détails, mais je suis presque sûr que vous pouvez fermer une fenêtre programmatique que vous avez ouverte à partir de javascript. Serait-ce suffisant?
Essayez de démarrage de la boîte de plugin.
var alert = bootbox.alert('Massage')
alert.show();
setTimeout(function(){alert.modal('hide'); }, 4000);
La seule vraie alternative ici est d'utiliser une sorte de widget personnalisé avec un modal option. Regardez jQuery UI pour un exemple de dialogue avec ces fonctionnalités. Des choses similaires existent dans presque tous les cadres JS que vous pouvez mentionner.
si vous le faites par programmation dans JS, ce sera comme réinventer la roue. Je recommande d'utiliser un jQuery plugin appelé jGrowl
vous pouvez utiliser label et régler son temps d'entrée et de sortie pour E. g Masquer d'abord et afficher sur le clic. $ ('#div_Message').fadeIn (500).délai (1000).fadeOut (1500);
window.setTimeout('alert("Message goes here");window.close();', 5000);