667 Stimmen

Warum funktioniert JavaScript nur nach einmaligem Öffnen der Entwicklertools im IE?

IE9 Bug - JavaScript funktioniert nur nach einmaligem Öffnen der Entwicklertools.

Unsere Website bietet den Nutzern kostenlose PDF-Downloads an und verfügt über eine einfache "Passwort eingeben zum Herunterladen"-Funktion. Allerdings funktioniert sie im Internet Explorer überhaupt nicht.

Davon können Sie sich selbst überzeugen Beispiel .

Der Download-Pass ist "makeuseof". In allen anderen Browsern funktioniert er einwandfrei. Im IE bewirken beide Schaltflächen nichts.

Das Merkwürdigste, was ich festgestellt habe, ist, dass, wenn man die Entwickler-Symbolleiste mit F12 öffnet und schließt, plötzlich alles funktioniert.

Wir haben es mit dem Kompatibilitätsmodus und so weiter versucht, aber nichts hat einen Unterschied gemacht.

Wie bringe ich das im Internet Explorer zum Laufen?

4 Stimmen

Cross-Browser-Wrapper verwenden: github.com/MichaelZelensky/log.js

3 Stimmen

Eine gute Alternative, wenn Sie einen Build-Schritt haben, ist die Verwendung von etwas wie gulp-strip-debug . Sie beseitigt alle console.* Methoden, ideal für Produktions-Builds oder Tests im IE.

17 Stimmen

Für zukünftige Googler: Ich hatte die gleichen Symptome, aber im IE11. Nun, es stellte sich heraus, dass die Antwort nicht mit dem console sondern auf meine Verwendung von Angular und Caching von Get-Anfragen. Siehe Antworten ici y ici für mehr.

2voto

gregsonian Punkte 906

Wir haben dieses Problem mit dem IE 11 unter Windows 7 und Windows 10 festgestellt. Wir fanden heraus, was genau das Problem war, indem wir die Debugging-Funktionen für den IE aktivierten (IE > Internetoptionen > Registerkarte "Erweitert" > Browsing > Deaktivieren Skript-Debugging deaktivieren (Internet Explorer) ). Diese Funktion wird in unserer Umgebung in der Regel von den Domänenadministratoren überprüft.

Das Problem bestand darin, dass wir die console.debug(...) Methode in unserem JavaScript-Code. Der Entwickler (ich) ging davon aus, dass ich nichts schreiben wollte, wenn die Konsole der Client-Entwicklertools nicht ausdrücklich geöffnet war. Während Chrome und Firefox mit dieser Strategie einverstanden zu sein schienen, gefiel sie dem IE 11 überhaupt nicht. Durch die Änderung aller console.debug(...) Aussagen zu console.log(...) Anweisung war es möglich, zusätzliche Informationen in der Client-Konsole zu protokollieren und anzuzeigen, wenn sie geöffnet war, sie aber ansonsten für den normalen Benutzer verborgen zu halten.

2voto

pauldx Punkte 661

Ich habe die Auflösung und Lösung für mein Problem angegeben. Sieht aus wie AJAX-Anfrage, die ich in meinem JavaScript wurde nicht verarbeitet, weil meine Seite war mit einigen Cache-Problem. wenn Ihre Website oder Seite hat ein Caching-Problem werden Sie nicht sehen, dass Problem in der Entwickler/F12-Modus. meine Cache-JavaScript AJAX-Anfragen kann es nicht funktionieren wie erwartet und dazu führen, dass die Ausführung zu brechen, die F12 hat kein Problem überhaupt. Also fügte ich einfach einen neuen Parameter hinzu, um den Cache auf false zu setzen.

$.ajax({
  cache: false,
});

Sieht aus wie IE speziell braucht dies falsch zu sein, so dass die AJAX und Javascript-Aktivität gut laufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X