Debugowanie JavaScript w IE7


160

Muszę debugować JavaScript w Internet Explorerze 7.

Niestety, jego domyślny debugger nie dostarcza mi wielu informacji. Informuje mnie o stronie, na której pojawił się błąd (nie o konkretnym skrypcie) i podaje numer wiersza. Nie wiem, czy jest to związane z moim problemem.

Byłoby miło, gdyby mógł zawęzić błąd do numeru wiersza w określonym skrypcie (tak jak może to Firebug).

Czy istnieje dodatek do debugowania JavaScript w IE7, tak jak robi to Firebug w Firefoksie?

Dziękuję Ci!

Zobacz też:

Czy IE7 ma „tryb programisty” lub wtyczkę, taką jak Firefox / Chrome / Safari?

Odpowiedzi:


90

Web Development Helper jest bardzo dobry.

IE Dev Toolbar jest często pomocne, ale niestety nie robi debugowanie skryptu


4
Być może warto zauważyć, że musisz wyłączyć opcję „wyłącz debugowanie” w opcjach zaawansowanych.
Dan Rosenstark,

24
Nie widzę żadnych opcji debugowania skryptów na pasku narzędzi IE Dev, a najnowsza wersja programu Web Development Helper nie działa, nawet po zmianie moich zaawansowanych preferencji i ponownym uruchomieniu IE7.
stevebot

9
Podane powyżej łącze Web Development Helper nie istnieje. Czy ktoś może potwierdzić, że jest to hostowane tutaj to samo narzędzie? softpedia.com/get/Tweak/Browser-Tweak/ ...
RMorrisey

3
Och, ironia; Łącze do pobierania softpedii dla Web Dev Helper nie działa w IE7! (Przerażający błąd „Operacja przerwana”.)
Sean McMillan

1
Myślę, że odsyłacz prowadzi do złośliwego oprogramowania.
drzewo

41

Trudna prawda jest taka: jedynym dobrym debugerem dla IE jest Visual Studio.

Jeśli nie masz pieniędzy na prawdziwą transakcję, pobierz bezpłatnie Visual Web Developer 2008 Express Edition Visual Web Developer 2010 Express Edition . Podczas gdy ta pierwsza umożliwia podłączenie debuggera do już działającego IE, druga nie (przynajmniej poprzednie wersje, których użyłem, nie pozwalały na to). Jeśli nadal tak jest, sztuczka polega na utworzeniu prostego projektu z jedną pustą stroną internetową, „uruchomieniu” go (uruchamia przeglądarkę), teraz przejdź do dowolnej strony, którą chcesz debugować, i rozpocznij debugowanie.

Microsoft udostępnia pełne oprogramowanie Visual Studio na różnych wydarzeniach, zwykle z ograniczeniami licencyjnymi, ale pozwalają na majsterkowanie w domu. Sprawdź ich grafik i listę gratunków.

Kolejna wskazówka: spróbuj najpierw debugować swoją aplikację internetową za pomocą innych przeglądarek. Z Operą odniosłem wielki sukces. W jakiś sposób emulacja IE i jej błędów przez Operę była dość bliska, ale debugger jest znacznie lepszy.


2
aby uzyskać szczegółowe instrukcje, zobacz odpowiedź @ mitjak
rymo

4
VS to nie jedyny dobry debugger dla IE, chociaż zgadzam się, że nie ma wielu dobrych. To jest jedyny debugger javascript specyficzny dla IE, którego używam od lat, chociaż nie jest darmowy: javascript-debugger.com

Link do VS 2008 zniknął. Teraz przechodzi do strony VS 2012.
Sean McMillan

Istnieje VS 2012 Express Edition, która jest nadal bezpłatna (stary link faktycznie na to wskazuje).
Eugene Lazutkin

1
VS2012 Express wymaga systemu Windows 7. Jeśli próbujesz debugować IE7, nie jest to pomocne. Potrzebujesz VS2010 Web Express: microsoft.com/web/gallery/ ...
Mike

32

warto wypróbować debugger skryptów firmy Microsoft , jest dość stary, ale jest całkiem przydatny w tym sensie, że jeśli natkniesz się na jakikolwiek błąd javascript, pojawi się okno debugera, aby pokazać, która linia jest zepsuta. podczas normalnego surfowania czasami może być irytujące, ale możesz je wyłączyć.

oto dobry początek, jak również używać tego narzędzia. JAK: Debugować JavaScript w przeglądarce Internet Explorer


Link do instrukcji jest uszkodzony. Oto zaktualizowany link: jonathanboutelle.com/2006/01/16/…
Dana

Świetna trasa debugowania o niskim tarciu, bez konieczności instalowania oprogramowania innej firmy.
Jon Hadley,

27

Znalazłem DebugBar .

Nie tak dobry jak Firebug, ale blisko.


3
nadal, dużo lepiej niż np. pasek narzędzi deweloperskich
Sam Saffron

2
Nie wiem, dlaczego nie jest to akceptowana odpowiedź. Zdecydowanie lepszy niż jakikolwiek inny debugger dla IE.
Tres

1
Uważam, że darmowy „ Companion JS ” wspomniany na ich stronie działa najlepiej. Mówi dokładnie, w którym pliku JS i numerze linii wystąpił błąd.
Tyler

25

W IE7 możesz wywołać firebug lite dla bieżącej strony, wklejając w pasku adresu:

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);

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


6
Firebug lite nie obsługuje Javascript
Casebash,

Zatrzymałem się w FireBug lite z jego konsolą, aby debugować
Eugene Gluhotorenko

Ma konsolę obsługującą JavaScript, czego szukałem.
Alex W

Naprawdę przydatne do sprawdzania elementów w IE 7. Dzięki! :)
Leniel Maccaferri

7

Microsoft Script Editor jest rzeczywiście opcją, a spośród tych, które wypróbowałem, jednym z bardziej stabilnych - debugger w IE8 jest świetny, ale z jakiegoś powodu za każdym razem, gdy uruchamiam Narzędzia programistyczne, IE8 zajmuje trochę czasu, czasami do minuta, aby sprawdzić drzewo DOM mojej strony. A potem wydaje się, że chce to robić na każdej stronie odświeżania, co jest torturą.

Państwo może kontrolować zawartość zmiennych w edytorze Microsoft Script: Jeśli rozglądamy pod Debug> Okno można włączyć inspekcji zmiennej lokalnej, oglądanie itp

Druga opcja, Visual Web Dev, choć zajmuje dużo miejsca, działa dość dobrze. Aby to skonfigurować, zrób to (skradzione stąd ):

  1. Debugowanie powinno być włączone w IE. Przejdź do Narzędzia> Opcje internetowe> Zaawansowane i sprawdź, czy opcja Wyłącz debugowanie skryptów (Internet Explorer) jest odznaczona i Wyświetlaj powiadomienie o każdym błędzie skryptu jest zaznaczona
  2. Utwórz nowy, pusty projekt internetowy w programie VWD
  3. Kliknij prawym przyciskiem myszy witrynę w Eksploratorze rozwiązań w prawym górnym rogu, przejdź do Przeglądaj za pomocą i upewnij się, że domyślna przeglądarka jest ustawiona na IE (rozsądnie jest założyć, że jeśli jesteś programistą internetowym, IE nie jest Twoją domyślną przeglądarką, w takim przypadku to nie będzie domyślne .. domyślnie)
  4. Naciśnij F5, IE się otworzy. Przejdź do strony, którą chcesz debugować.
  5. Program VWD będzie teraz otwierał się za każdym razem, gdy wystąpi błąd skryptu lub jeśli ustawisz punkt przerwania w jednym z plików JS. Debuguj!

AKTUALIZACJA : Nawiasem mówiąc, jeśli doświadczasz takich samych spowolnień jak ja z przyzwoitym debugerem IE8, istnieje obejście - jeśli napotkasz lub sprawisz, że IE napotka błąd, tak że pojawi się okno dialogowe „Czy chcesz debugować” i hit Tak, debugger pojawi się prawie natychmiast. Wygląda na to, że jeśli przejdziesz „prosto” w tryb debugowania, Dev Tools nigdy nie sprawdzą DOM. Dzieje się tak tylko wtedy, gdy naciśniesz F12.


Musiałbym to jeszcze przetestować, ale jak dotąd wydaje się, że debugger IE8 działa szybciej podczas przeglądania w trybie zgodności. Domyśl!
dmkc

1
Jeśli używasz ekspresowej (bezpłatnej) wersji programu VWD, upewnij się, że przed krokiem 4 zamknąłeś WSZYSTKIE okna IE - VWD musi być tym, który uruchamia IE od nowa, aby go „posiadał”.
rymo

3

IE8 ma znacznie ulepszone narzędzia programistyczne. Do tego czasu najlepiej jest najpierw napisać javascript dla przeglądarki Firefox, a następnie debugować IE za pomocą instrukcji alert ().


Nie mogę się doczekać IE8 (o ile spełnia oczekiwania - jeszcze nie pobrałem wersji beta)
alex

Teraz, gdy jest już dostępny, zaktualizowałem i muszę powiedzieć, że podoba mi się debugger nawet bardziej niż firebug :)
Joel Coehoorn

@Joel, chociaż debugger jest świetny - jedna rzecz, która mnie denerwuje (którą ma Firebug), to menu kontekstowe dostępne po kliknięciu prawym przyciskiem myszy, w którym można wybrać opcję „Sprawdź element”. O ile mi wiadomo, w IE8 musisz uruchomić narzędzia deweloperskie, następnie kliknąć strzałkę, a następnie znaleźć element, który chcesz sprawdzić.
Alex

3

Microsoft Script Editor może być używany do debugowania JavaScript w IE. Jest mniej błędny niż Microsoft Script Debugger, ale ma tę samą podstawową funkcjonalność, która niestety ogranicza się do przechodzenia przez wykonywanie. Nie wydaje mi się, żebym sprawdzał zmienne ani inne przydatne rzeczy. Poza tym był dostarczany tylko z Office XP / 2003 z jakiegoś dziwnego powodu. Więcej informacji tutaj jeśli grasz.

Pobrałem Visual Web Developer 2008 Express Edition, o którym wspomniał Eugene Lazutkin, ale nie miałem jeszcze okazji go wypróbować. Zalecam wypróbowanie tego przed edytorem / debugerem skryptów.


3

Nie jest to pełny debugger, ale moje rozszerzenia DP_DEBUG zapewniają pewną (myślę) użyteczną funkcjonalność i działają w IE, Firefox i Opera (9+).

Możesz "zrzucić" wizualne reprezentacje złożonych obiektów JavaScript (nawet obiektów systemowych), uprościć rejestrowanie i synchronizację. Komponent zapewnia proste metody włączania i wyłączania go, dzięki czemu można pozostawić debugger na miejscu do pracy produkcyjnej, jeśli chcesz.

DP_Debug


2

Narzędzia programistyczne IE9 działały dla mnie. Po prostu ustaw pozycję menu „Tryb przeglądarki” na IE7.


7
Jest to przydatne, ale emulowany IE7 nie jest taki sam.
Alex

Myślę, że to zależy. Jeśli uda mi się odtworzyć problem w emulowanym trybie IE9, naprawię go tam. W przeciwnym razie Firebug Lite jest dobrym rozwiązaniem - chociaż musisz gdzieś zainstalować IE7.
Peter Tseng

1

Hej natknąłem się na ten sam problem i znalazłem to w aplikacji IETESTER . To całkiem niesamowite, to aplikacja, która ma w pakiecie IE 5.5,6 i 7. Nie ma znaczenia, jaką masz obecnie wersję IE. Dzięki temu możesz mieć wiele wersji obok siebie.

Jeśli włączysz debugowanie javascript w opcjach IE i masz zainstalowany program Visual Studio, możesz nawet debugować javascript w VS z wszystkimi dostępnymi opcjami debugowania (zegarki, warunkowe punkty przerwania itp.)

Jeśli chcesz rozpocząć debugowanie, zanim wystąpi błąd, po prostu musisz wstawić tę linię

debugger;

do kodu JS, a to przeniesie Cię do VS, aby rozpocząć debugowanie po tej instrukcji.

Jest to dla mnie absolutnie niesamowite, jeśli chodzi o testowanie wstecznej kompatybilności kodu JS.


0

Użyj przeglądarki Internet Explorer 8. Następnie wypróbuj narzędzie dla programistów. Możesz debugować w oparciu o IE 7 również w trybie zgodności


17
IE7! = Tryb zgodności z IE8. Występują niezgodności.
thorn̈

1
+1 Co najmniej IE8 podaje nazwę pliku skryptu, który powoduje błąd.
pułkownik Sponsz

@thorn, ale jest tryb IE7. (Może wcześniej nie było?) A więc: zwykły, tryb zgodności, tryb IE7.
ANeves

1
@ANeves to tylko różne nazwy tego samego
thorn̈

4
@ANeves Wygląda na to, że „tryb IE7” to po prostu „tryb zgodności” z agentem użytkownika zmienionym na używany przez IE7. Ale chcę jeszcze raz podkreślić, że tryb zgodności nie jest tak kompatybilny. Np. Resetowanie właściwości stylu przez jQuery wygląda tak w IE7 (i innych przeglądarkach):$my.css('z-index', null) . W IE8 ten kod generuje błąd, nawet w tzw. Trybie zgodności. Musiałem więc napisać taki kod:$my.css('z-index', ie8 ? 'auto' : null)
thorn̈


0

Odpowiedź jest prosta.

  1. Pobierz Internet Explorer 9
  2. Naciśnij klawisz F12, aby załadować narzędzia programistyczne
  3. Przełącz tryb przeglądarki na IE7

przełączenie trybu przeglądarki na IE9


6
Ponieważ jest niewiarygodny :( Wszystkie otwarte bilety w moim obecnym projekcie połączonym z IE7 nie są odtwarzalne w systemie Vista w systemie Windows 7
AlfeG

4
Może być pomocny, jeśli błąd można odtworzyć. Ale są pewne błędy, które nie występują w IE9 w trybie IE7, ale w oryginalnym IE7 (to samo dla IE8)
yunzen

0

Uruchomienie kodu za pomocą narzędzia do analizy statycznej JavaScript, takiego jak JSLint, może wykryć niektóre typowe błędy IE7, takie jak końcowe przecinki w definicjach obiektów.


0

Narzędzia programistyczne IE8 mogą przełączyć się w tryb IE7wprowadź opis obrazu tutaj


0

Jeśli nadal musisz debugować IE 7, tryb emulacji IE 11 działa całkiem dobrze.

Przejdź do menu: Dev Tools, następnie do emulacji i ustaw ją. Zawiera również informacje o błędach.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.