Frage

Ich möchte eine Warnung automatisch in der Lage sein zu schließen javascript nach einer bestimmten Zeit oder zu einem bestimmten Ereignis (das heißt onkeypress). Aus meiner Forschung, sieht es nicht so mit der eingebauten in alert () Funktion möglich ist. Gibt es eine Möglichkeit, es außer Kraft zu setzen und haben die Kontrolle über das Dialogfeld, das es öffnet?

Auch ich keinen außer Kraft setzen möchten, die eine versteckte div als Alarm zeigt. Ich brauche einen tatsächlichen Dialog.

War es hilfreich?

Lösung

Wie bereits erwähnt, wirklich können Sie dies nicht tun. Sie können innerhalb des Fensters mit einem UI-Framework einen modalen Dialog zu tun, oder Sie können ein Popup-Fenster haben, mit einem Skript, das automatisch schließt nach einem Timeout ... jeweils einen negativen Aspekt hat. Das modale Fenster im Browser wird keine Meldung erstellen, wenn das Fenster minimiert wird, und ein programmatisches (Timer-basierte) Pop-up wird wahrscheinlich durch modernen Browser blockiert werden, und Popup-Blocker.

Andere Tipps

Erscheinen Sie können etwas ähnliches mit dem Mitteilung API. Sie können nicht kontrollieren, wie lange es sichtbar ist (wahrscheinlich eine O Präferenz irgendeine Art - es sei denn, Sie requireInteraction true angeben), und es muss den Benutzer „erlaubt Benachrichtigungen“ (leider) klicken, aber hier ist es:

Wenn Sie wollen, dass es nach 1s schließen:

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

Wenn Sie es länger als die „default“ zeigen wollte man an die OnClose Rückruf binden konnte und zeigen eine weitere Wiederholung Mitteilung Ich nehme an, sie zu ersetzen.

Ref: von diese beantworten, obwohl diese Antwort in der modernen Chrome funktioniert nicht mehr, aber die Mitteilung API der Fall ist.

keine Kontrolle über das Dialogfeld, wenn Sie die Kontrolle über das Dialogfeld haben, können Sie aufdringliche JavaScript-Code schreiben. (Es ist keine gute Idee, wachsam zu verwenden für alles außer dem Debuggen)

  

Ich möchte in der Lage, eine Warnung zu schließen   Box automatisch mit Hilfe von Javascript   nach einer gewissen Zeit oder auf ein   bestimmte Ereignis (das heißt onkeypress)

Eine Bemerkung am Rande: Wenn Sie eine Benachrichtigung ( „data“) haben, werden Sie nicht in der Lage sein, Code zu halten, laufen im Hintergrund (AFAIK) .... das Dialogfeld ist ein modales Fenster, so dass Sie konzentrieren sie nicht verlieren. So werden Sie keine Tastendruck oder Timer laufen haben ...

Try-Boot-Box-Plugin.

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

Ich denke, man könnte ein Popup-Fenster öffnen und rufen Sie , die ein Dialogfeld. Ich bin nicht sicher, die Details, aber ich bin mir ziemlich sicher, dass Sie ein Fenster schließen können programmatisch, dass Sie von Javascript geöffnet. Würde dies ausreichen?

Die einzige hier echte Alternative ist eine Art von benutzerdefinierter Widget mit einer modalen Option zu verwenden. Werfen Sie einen Blick auf jQuery UI für ein Beispiel eines Dialogs mit diesen Merkmalen. Ähnliche Dinge existieren jeden JS Rahmen in können nur über Sie erwähnen.

Wenn Sie es programmatisch in JS tun wird es wie das Rad neu erfinden sein. Ich empfehle, mit einem jQuery genannt Plugin jGrowl

Sie können Label verwenden und seine verblassen gesetzt in und out für z Verstecken Sie es zunächst und zeigen auf Klick. $ ( '# Div_Message') fadeIn (500) .delay (1000) .fadeOut (1500);.

window.setTimeout('alert("Message goes here");window.close();', 5000);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top