Debuggen von JavaScript in IE7

160

Ich muss JavaScript in Internet Explorer 7 debuggen.

Leider liefert mir der Standard-Debugger nicht viele Informationen. Es teilt mir die Seite mit, auf der der Fehler aufgetreten ist (nicht das spezifische Skript), und gibt mir eine Zeilennummer. Ich weiß nicht, ob das mit meinem Problem zusammenhängt.

Es wäre schön, wenn es den Fehler auf eine Zeilennummer in einem bestimmten Skript eingrenzen könnte (wie es Firebug kann).

Gibt es ein Addon zum Debuggen von JavaScript in IE7 wie Firebug in Firefox?

Danke dir!

Siehe auch:

Hat IE7 einen "Entwicklermodus" oder ein Plugin wie Firefox / Chrome / Safari?

Alex
quelle

Antworten:

90

Web Development Helper ist sehr gut.

Die IE Dev Toolbar ist oft hilfreich, führt aber leider kein Skript-Debugging durch

Bob
quelle
4
Bemerkenswert ist vielleicht, dass Sie "Debugging deaktivieren" in den erweiterten Optionen deaktivieren müssen.
Dan Rosenstark
24
In der IE Dev Toolbar werden keine Skript-Debugging-Optionen angezeigt, und die neueste Version von Web Development Helper funktioniert nicht, selbst nachdem ich meine erweiterten Einstellungen geändert und IE7 neu gestartet habe.
Stevebot
9
Der oben angegebene Link zum Web Development Helper ist nicht mehr gültig. Kann jemand bestätigen, dass dies das gleiche Tool ist, das hier gehostet wird? softpedia.com/get/Tweak/Browser-Tweak/…
RMorrisey
3
Oh die Ironie; Der Softpedia-Download-Link für Web Dev Helper stirbt in IE7! (Der gefürchtete Fehler "Operation abgebrochen".)
Sean McMillan
1
Ich denke, der Link führt zu Malware.
Baum
41

Die harte Wahrheit ist: Der einzige gute Debugger für IE ist Visual Studio.

Wenn Sie kein Geld für das echte Geschäft haben, laden Sie die kostenlose Visual Web Developer 2008 Express Edition herunter. Visual Web Developer 2010 Express Edition . Während Ersteres das Anhängen eines Debuggers an einen bereits laufenden IE ermöglicht, ist Letzteres nicht möglich (zumindest frühere Versionen, die ich verwendet habe, haben dies nicht zugelassen). Wenn dies immer noch der Fall ist, besteht der Trick darin, ein einfaches Projekt mit einer leeren Webseite zu erstellen, es "auszuführen" (es startet den Browser), jetzt zu der Seite zu navigieren, die Sie debuggen möchten, und mit dem Debuggen zu beginnen.

Microsoft verschenkt vollständiges Visual Studio für verschiedene Ereignisse, normalerweise mit Lizenzbeschränkungen, aber sie ermöglichen das Basteln zu Hause. Überprüfen Sie ihren Zeitplan und die Liste der Werbegeschenke.

Ein weiterer Hinweis: Versuchen Sie zunächst, Ihre Webanwendung mit anderen Browsern zu debuggen. Ich hatte einen großen Erfolg mit Opera. Irgendwie war die Emulation von IE und seinen Fehlern durch Opera ziemlich eng, aber der Debugger ist viel besser.

Eugene Lazutkin
quelle
2
Eine Schritt-für-Schritt-Anleitung finden Sie in der Antwort von @ mitjak
rymo
4
VS ist nicht der einzige gute Debugger für IE, obwohl ich der Meinung bin, dass es nicht viele gute gibt. Dies ist der einzige IE-spezifische Javascript-Debugger, den ich seit Jahren verwende, obwohl er nicht kostenlos ist: javascript-debugger.com
Link zu VS 2008 ist weg. Jetzt geht es zu einer Seite für VS 2012.
Sean McMillan
Es gibt die VS 2012 Express Edition, die noch kostenlos ist (der alte Link verweist tatsächlich darauf).
Eugene Lazutkin
1
Für VS2012 Express ist Windows 7 erforderlich. Wenn Sie versuchen, IE7 zu debuggen, ist dies nicht hilfreich. Was Sie brauchen, ist VS2010 Web Express: microsoft.com/web/gallery/…
Mike Post
32

Vielleicht möchten Sie den Microsoft Script Debugger ausprobieren, er ist ziemlich alt, aber er ist in dem Sinne sehr nützlich, wenn Sie auf einen Javascript-Fehler stoßen. Der Debugger wird angezeigt, um Ihnen anzuzeigen, welche Zeile durcheinander ist. Es kann manchmal irritierend werden, wenn Sie normal surfen, aber Sie können es ausschalten, wenn Sie es ausschalten.

Hier ist ein guter Start, wie man dieses Tool auch benutzt. HOW-TO: Debuggen Sie JavaScript im Internet Explorer

melaos
quelle
Die Howto-Verbindung ist unterbrochen. Hier ist ein aktualisierter Link: jonathanboutelle.com/2006/01/16/…
Dana
Hervorragende Debugging-Route mit geringer Reibung, ohne dass Software von Drittanbietern installiert werden muss.
Jon Hadley
27

Ich habe DebugBar gefunden .

Nicht so gut wie Firebug, aber nah dran.

Alex
quelle
3
Trotzdem viel besser als die Entwickler-Symbolleiste
Sam Saffron
2
Ich weiß nicht, warum dies nicht die akzeptierte Antwort ist. Bei weitem besser als jeder andere Debugger für IE.
Tres
1
Ich fand tatsächlich, dass der kostenlose " Companion JS ", der auf ihrer Website erwähnt wird, am besten funktioniert. Hier erfahren Sie genau, bei welcher JS-Datei und Zeilennummer der Fehler auftritt.
Tyler
25

In IE7 können Sie Firebug Lite für die aktuelle Seite aufrufen, indem Sie Folgendes in die Adressleiste einfügen:

javascript:var firebug=document.createElement('script');firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js');document.body.appendChild(firebug);(function(){if(window.firebug.version){firebug.init();}else{setTimeout(arguments.callee);}})();void(firebug);

Siehe http://getfirebug.com/lite.html .

Marc
quelle
6
Firebug Lite macht kein Javascript
Casebash
Ich hielt bei FireBug Lite mit seiner Konsole zum Debuggen an
Eugene Gluhotorenko
Es gibt eine Konsole, auf der JavaScript ausgeführt wird, wonach ich gesucht habe.
Alex W
Wirklich nützlich, um Elemente in IE 7 zu überprüfen. Danke! :)
Leniel Maccaferri
7

Microsoft Script Editor ist in der Tat eine Option, und von denen, die ich ausprobiert habe, ist eine der stabileren - der Debugger in IE8 ist großartig, aber aus irgendeinem Grund dauert es eine Weile, wenn ich die Entwicklertools starte, manchmal bis zu einer Minute, um den DOM-Baum meiner Seite zu überprüfen. Und danach scheint es bei jeder Seitenaktualisierung geschehen zu wollen, was eine Qual ist.

Sie können den Inhalt von Variablen im Microsoft Script-Editor überprüfen: Wenn Sie unter Debug> Fenster stöbern, können Sie die lokale Variablenprüfung, das Überwachen usw. aktivieren.

Die andere Option, Visual Web Dev, ist zwar sperrig, funktioniert aber recht gut. Um es einzurichten, gehen Sie folgendermaßen vor (von hier gestohlen ):

  1. Das Debuggen sollte im IE aktiviert sein. Gehen Sie zu Extras> Internetoptionen> Erweitert und aktivieren Sie das Kontrollkästchen Skript-Debugging deaktivieren (Internet Explorer) und zeigen Sie eine Benachrichtigung über jeden Skriptfehler an geprüft
  2. Erstellen Sie ein neues leeres Webprojekt in VWD
  3. Klicken Sie mit der rechten Maustaste auf die Site im Lösungs-Explorer oben rechts, gehen Sie zu Durchsuchen mit und stellen Sie sicher, dass Ihr Standardbrowser auf IE eingestellt ist ( in diesem Fall ist anzunehmen, dass IE kein Standardbrowser ist, wenn Sie ein Webentwickler sind das wird nicht die Standardeinstellung sein .. standardmäßig)
  4. Drücken Sie F5, IE wird geöffnet. Navigieren Sie zu der Seite, die Sie debuggen möchten.
  5. VWD wird jetzt jedes Mal geöffnet, wenn Sie einen Skriptfehler haben oder wenn Sie einen Haltepunkt in einer der JS-Dateien festlegen. Debuggen Sie weg!

UPDATE : Übrigens, wenn Sie mit dem ansonsten anständigen IE8-Debugger die gleichen Verlangsamungen wie ich erleben, gibt es eine Problemumgehung - wenn Sie auf einen Fehler stoßen oder ihn auf einen Fehler stoßen lassen, so dass der Dialog "Möchten Sie debuggen" und angezeigt wird Drücken Sie Ja, der Debugger wird ziemlich sofort gestartet. Es scheint, als würden die Dev Tools das DOM niemals überprüfen, wenn Sie "direkt" in den Debugging-Modus wechseln. Nur wenn Sie F12 drücken, ist dies der Fall.

dmkc
quelle
Ich müsste das noch etwas testen, aber bisher scheint es, als würde der IE8-Debugger beim Surfen im Kompatibilitätsmodus schneller funktionieren. Stelle dir das vor!
dmkc
1
Wenn Sie die (kostenlose) Express-Version von VWD verwenden, stellen Sie sicher, dass Sie ALLE IE-Fenster vor Schritt 4 geschlossen haben. VWD muss derjenige sein, der den IE neu startet, damit er ihn "besitzt".
Rymo
3

IE8 hat die Entwicklertools erheblich verbessert. Bis dahin ist es am besten, zuerst Javascript für Firefox zu schreiben und dann den IE mit alert () -Anweisungen zu debuggen.

Joel Coehoorn
quelle
Ich kann es kaum erwarten, auf IE8 zu warten (solange es dem Hype gerecht wird - ich habe die Beta noch nicht heruntergeladen)
Alex
Jetzt, wo es raus ist, habe ich udpated und ich muss sagen, dass ich den Debugger noch besser mag als den von Firebugs :)
Joel Coehoorn
@Joel, obwohl der Debugger großartig ist - eine Sache, die mich nervt (die Firebug hat), ist ein Kontextmenü mit der rechten Maustaste, in dem Sie "Element überprüfen" auswählen können. Meines Wissens müssen Sie in IE8 die Entwicklertools starten, dann auf den Pfeil klicken und dann das Element suchen, das Sie untersuchen möchten.
Alex
3

Microsoft Script Editor kann zum Debuggen von Javascript im IE verwendet werden. Es ist weniger fehlerhaft als Microsoft Script Debugger, verfügt jedoch über die gleichen grundlegenden Funktionen, die sich leider nur auf die schrittweise Ausführung beschränken. Ich kann scheinbar keine Variablen oder ähnliches untersuchen. Außerdem wurde es aus bizarren Gründen nur mit Office XP / 2003 ausgeliefert. Weitere Infos hier, wenn Sie ein Spiel sind.

Ich habe die von Eugene Lazutkin erwähnte Visual Web Developer 2008 Express Edition heruntergeladen, hatte aber noch keine Gelegenheit, sie auszuprobieren. Ich würde empfehlen, dies vor dem Skript-Editor / Debugger zu versuchen.

Kenny
quelle
3

Es ist kein vollständiger Debugger, aber meine DP_DEBUG-Erweiterungen bieten einige (meiner Meinung nach) nützliche Funktionen und funktionieren in IE, Firefox und Opera (9+).

Sie können visuelle Darstellungen komplexer JavaScript-Objekte (auch Systemobjekte) "sichern", die Protokollierung und das Timing vereinfachen. Die Komponente bietet einfache Methoden zum Aktivieren oder Deaktivieren, sodass Sie den Debugger für Produktionsarbeiten an Ort und Stelle lassen können, wenn Sie möchten.

DP_Debug

Jim Davis
quelle
2

Die IE9-Entwicklertools haben für mich funktioniert. Stellen Sie einfach den Menüpunkt "Browsermodus" auf IE7.

Peter Tseng
quelle
7
Dies ist nützlich, aber der emulierte IE7 ist nicht ganz derselbe.
alex
Ich denke es kommt darauf an. Wenn ich ein Problem im emulierten Modus von IE9 reproduzieren kann, werde ich es dort beheben. Ansonsten ist Firebug Lite eine gute Lösung - obwohl IE7 irgendwo installiert sein muss.
Peter Tseng
1

Hey, ich bin auf das gleiche Problem gestoßen und habe festgestellt, dass dies die Anwendung IETESTER ist . Es ist ziemlich fantastisch, es ist eine App, in der IE 5.5,6 und 7 enthalten sind. Es spielt keine Rolle, welche IE-Version Sie derzeit haben. Auf diese Weise können Sie mehrere Versionen nebeneinander haben.

Wenn Sie das Javascript-Debugging in IE-Optionen aktivieren und Visual Studio installiert haben, können Sie das Javascript sogar in VS mit allen verfügbaren Debug-Optionen (Uhren, bedingte Haltepunkte usw.) Debuggen.

Wenn Sie mit dem Debuggen beginnen möchten, bevor ein Fehler auftritt, müssen Sie nur die Zeile einfügen

debugger;

in Ihren JS-Code und dies bringt Sie in VS, um nach dieser Anweisung mit dem Debuggen zu beginnen.

Dies ist für mich absolut erstaunlich, um die Abwärtskompatibilität für JS-Code zu testen.

Jose
quelle
0

Verwenden Sie Internet Explorer 8. Probieren Sie dann das Entwicklertool aus. Sie können basierend auf IE 7 auch im Kompatibilitätsmodus debuggen

Joberror
quelle
17
IE7! = IE8-Kompatibilitätsmodus. Es gibt Inkompatibilitäten.
Dorn
1
+1 Mindestens IE8 gibt den Dateinamen des Skripts an, das den Fehler verursacht.
Oberst Sponsz
@dorn, aber es gibt einen IE7-Modus. (Vielleicht gab es vorher keine?) Also: regulärer Kompatibilitätsmodus, IE7-Modus.
ANeves
1
@ ANeves es ist nur verschiedene Namen für die gleiche Sache
Dorn̈
4
@ANeves "IE7-Modus" ist anscheinend nur "Kompatibilitätsmodus" mit einem Benutzeragenten, der in den von IE7 verwendeten geändert wurde. Aber ich möchte noch einmal betonen, dass der Kompatibilitätsmodus nicht so kompatibel ist. Das Zurücksetzen einer Stileigenschaft über jQuery sieht beispielsweise in IE7 (und anderen Browsern) folgendermaßen aus : $my.css('z-index', null). In IE8 gibt dieser Code auch im sogenannten Kompatibilitätsmodus einen Fehler aus. Also musste ich einen Code wie diesen schreiben:$my.css('z-index', ie8 ? 'auto' : null)
dorn̈
0

Die Antwort ist einfach.

  1. Holen Sie sich Internet Explorer 9
  2. Drücken Sie F12, um Developer Tools zu laden
  3. Schalten Sie den Browsermodus auf IE7

Umschalten des Browsermodus auf IE9

desbest
quelle
6
Weil es unzuverlässig ist :( Alle offenen Tickets in meinem aktuellen Projekt, die mit IE7 verbunden sind, sind in Vista von Windows 7
AlfeG
4
Könnte hilfreich sein, wenn der Fehler reproduzierbar ist. Es gibt jedoch einige Fehler, die nicht im IE9 mit IE7-Modus auftreten, sondern im ursprünglichen IE7 (dasselbe für IE8)
yunzen
0

Wenn Sie Ihren Code über ein statisches Javascript-Analysetool wie JSLint ausführen, können einige häufige IE7-Fehler abgefangen werden, z. B. nachgestellte Kommas in Objektdefinitionen.

Ian Mackinnon
quelle
0

IE8 Developer Tools können in den IE7-Modus wechselnGeben Sie hier die Bildbeschreibung ein

Viktor
quelle
0

Wenn Sie IE 7 noch debuggen müssen, funktioniert der Emulationsmodus von IE 11 ziemlich gut.

Gehen Sie zum Menü: Dev Tools, dann zur Emulation und stellen Sie es ein. Es gibt auch Informationen zur Fehlerzeile.

Erdal G.
quelle
-1

Die folgenden Tools funktionieren hervorragend für mich:

1) http://www.debugbar.com/

Bieten Sie eine praktische Benutzeroberfläche mit Funktionen wie Quelle, Stil, DOM, Skript und HTML-Prüfung. Es zeigt auch den tatsächlichen Fehler in Ihrer JS-Datei (welche Zeile, welche Datei).

2) http://www.my-debugbar.com/wiki/CompanionJS/Installing

Stellen Sie eine Konsole für IE6 oder IE7 bereit (die ursprünglich nicht unterstützt wird).

  • Bildschirmfoto

Geben Sie hier die Bildbeschreibung ein

super1ha1
quelle