web-dev-qa-db-de.com

Javascript: Warum funktioniert alert () manchmal nicht, Console.log () jedoch?

Von Zeit zu Zeit stehe ich vor einem sehr interessanten Fehler. Mein Javascript-Code zeigt während der Ausführung keine Warnung (msg) an. Wenn ich jedoch eine console.log (msg) verwende, wird sie in der Konsole angezeigt. Was könnte die Anzeige von alert () verhindern?

Danke vielmals

17
siebmanb

Dies ist ein sehr häufiges Problem, und jeder hat dieses Problem mindestens einmal erlebt ... Der Grund, dass alert () nicht funktioniert, ist, weil Sie zuvor das Kontrollkästchen "Verhindern, dass diese Seite zusätzliche Dialoug erstellt" aktiviert haben.

schauen wir uns diesen Code an.

<script type="text/javascript">

var js_name = ['elem1', 'elem2']

 for (var i = 0; i < js_name.length; i++) {
    alert(js_name[i]);
 };

</script>

Wenn Sie den Code ausführen, gibt es zwei Benachrichtigungsfelder. Wenn Sie das Kontrollkästchen "Verhindern, dass diese Seite zusätzliche Dialoug-Elemente erstellt" aktiviert hat, und die Seite dann erneut aktualisieren, wird das Benachrichtigungsfeld nicht mehr angezeigt.

Die Lösung besteht darin, dass Sie diese Webseite schließen und erneut im Browser öffnen müssen (nicht den gesamten Browser schließen). Ich gehe davon aus, dass Sie Chrome verwenden. Internet Explorer oder FireFox verfügen nicht über diese Checkbox-Funktion.

22
user1906399

Wenn Sie die Alarmfunktion überschreiben, funktioniert sie nicht

alert = function() 
{
 ...
};

alert('hello') // won't show any alert
4

Zu meinem Wissen wird alert () immer angezeigt, es sei denn, es wiederholt sich. In diesem Fall werden Sie gefragt, ob Sie weiterhin Alarme anzeigen möchten.

Ich nehme an, die Einzelheiten zur Handhabung dieses Problems hängen von Ihrem Browser ab. Möchten Sie weitere Details mitteilen? :)

1
Croot

Dies kann auch in Firefox vorkommen, wenn Sie die Entwicklerwerkzeuge geöffnet und den Responsive Design-Modus aktiviert haben. Es klingt wie es ist ein Fehler .

1
Ian Dunn

Dies geschieht auch in ColdFusion. Wenn Sie an einem beliebigen Ort nach dem Skript-Tag ein cflocation-Tag (anstelle von location.href) verwenden, wird die Warnung nicht angezeigt. 

1
JustHelpingOut

In Firefox: Gehen Sie zu Optionen -> Inhalt und deaktivieren Sie das Kontrollkästchen "Popup-Fenster blockieren". Starte den Browser neu.

0
olga

Ein weiterer Grund, warum alert, confirm und Prompt vom Browser ignoriert werden kann, ist, wenn sich das Dokument in einer iframe befindet, die ein sandbox- Attribut ohne allow-modals im Wert hat.

Zum Beispiel ignoriert Firefox dies unbemerkt, jedoch zeigt Chromium eine Warnung.

0
Yeti

Ich habe hier ein ähnliches Problem, wenn ich das Konsolenprotokoll durch "alert" ersetze, funktioniert es nicht, aber console.log funktioniert.

Der nicht funktionierende Code ist:

request(options, function(error, response, body) { // Requesting API

    var statusCode = response.statusCode;

    if(statusCode === 200){
      alert("Success");
    } else {
      alert(error);
    }

und der arbeitscode ist:

request(options, function(error, response, body) { // Requesting API

    var statusCode = response.statusCode;

    if(statusCode === 200){
      console.log("Success");
    } else {
      console.log(error);
    }
0
Ilknur Mustafov