Ich habe eine Javascript-Anwendung, die auf die Erfassung von Tastaturereignissen in einem Textfeld basiert. Beim Testen und Debuggen von Firefox (14.x) mit Firebug (1.10.2) habe ich festgestellt, dass sich meine Anwendung anders verhält, wenn ich Breakpoints aktiv habe und der Debugger funktioniert.Ermitteln, wann Firebug (oder ein anderer Web-Debugger) zum Debuggen verwendet wird
Ich weiß, wie man Firebug erkennt, aber ich würde gerne wissen, ob es möglich ist (mit Javascript) zu erkennen, wann der Firebug tatsächlich zum Debuggen verwendet wird?
Edit:. Hier ist ein Beispiel auf einem zufälligen Ort
This site fängt das Schlüsselereignis in einem Eingabefeld druckt Zeichencode und ersetzt die gedrückte Taste mit einer Textdarstellung (dh „Enter“ für Enter-Taste) oder Großbuchstaben (wenn ein Buchstabe).
Wenn ich es mit Chrome debuggen und einen Haltepunkt auf die Listener-Funktion platzieren, geschieht nichts, wenn der Haltepunkt erreicht ist (wie erwartet), wenn ich das Skript wiederbetrete, wird der Text wie normal ausgedruckt.
Wenn ich es mit Firebug auf Firefox debuggen: Sagen wir, dass ich vorher den Buchstaben "e" gedrückt habe und die Eingabezeile Text "E" enthält. Ich schalte den Haltepunkt ein und drücke den Buchstaben "z". Firebug stoppt am Haltepunkt, aber die Eingabezeile hat jetzt den Text "Ez" anstelle von "E". Wenn ich das Skript fortsetze, wird dieser Text wie erwartet durch "Z" ersetzt.
Ich probierte einen anderen Firefox-Debugger (Venkman 0.9.89) und das gleiche passierte. Ich vermute, das ist ein Firefox-Problem, nicht das Debugger-Problem. Die Frage könnte also allgemeiner sein, kann man feststellen, wann der Javascript-Code debuggt wird?
Dies ist eine * sehr * ungerade Anforderung.Wie verhält sich Ihre Anwendung anders? Vielleicht sollten Sie das Verhalten Ihrer Anwendung ansprechen und beheben, anstatt zu versuchen, sie zu umgehen. Normalerweise sollte sie sich beim Debuggen nicht anders verhalten, und vielleicht liegt ein architektonisches Problem dahinter. Und was ist mit den vielen anderen Debuggern da draußen? Sie müssten sie alle erkennen ... –
Funktioniert es anders, wenn Firebug funktioniert, auch wenn Sie keine Breakpoints oder andere Unterschiede zu Firebug-Runs haben? –
Ich nehme das Ereignis auf, verarbeite es und verhindere es. Beim Debuggen der Methode, die die Arbeit erledigt, passiert das Ereignis tatsächlich, bevor meine Methode aufgerufen wird, daher kann ich es nicht verhindern. Da meine Anwendung funktioniert, während Firebug ausgeschaltet ist, vermutete ich, dass dieses Verhalten kein Firefox-Problem war. Einen anderen Debugger zu finden kam mir nicht in den Sinn, danke für die Idee! Während Firebug eingeschaltet ist, aber nicht debuggt, funktioniert alles einwandfrei. – Bikush