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
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.
Wenn Sie die Alarmfunktion überschreiben, funktioniert sie nicht
alert = function()
{
...
};
alert('hello') // won't show any alert
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? :)
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 .
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.
In Firefox: Gehen Sie zu Optionen -> Inhalt und deaktivieren Sie das Kontrollkästchen "Popup-Fenster blockieren". Starte den Browser neu.
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.
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);
}