Kiedy otwieram Narzędzia programistyczne w Google Chrome, widzę wszelkiego rodzaju funkcje, takie jak Profile, Osie czasu i Audyty, ale brakuje podstawowych funkcji, takich jak możliwość ustawiania punktów przerwania zarówno w plikach js, jak i w kodzie HTML i javascript! Próbowałem użyć konsoli javascript, która sama jest wadliwa - na przykład po napotkaniu błędu JS nie mogę się z niego wydłużyć, dopóki nie odświeżę całej strony. Czy ktoś może pomóc?
211
Odpowiedzi:
Skorzystaj z karty źródeł, w której możesz ustawić punkty przerwania w JavaScript. W drzewie katalogów pod nim (ze strzałką w górę i w dół) możesz wybrać plik, który chcesz debugować. Możesz wyjść z błędu, naciskając przycisk wznowienia po prawej stronie tej samej karty.
źródło
<script> your code </script>
dodaj nazwę typu:<script> your code //# sourceURL=somename.js </script>
Wyjaśniono to lepiej w odpowiedzi poniżejCzy mówisz o kodzie w
<script>
tagach, czy w atrybutach tagów HTML, takich jak ten?Tak czy inaczej, takie
debugger
słowo kluczowe będzie działać:Uwaga: Chrome nie zatrzyma się o
debugger
s, jeśli narzędzia programistyczne nie są otwarte.Możesz także ustawić punkty przerwania właściwości w plikach JS i
<script>
znacznikach:źródło
Sources
zamiastScripts
teraz.Możesz także podać nazwę skryptu:
<script> ... (your code here) //# sourceURL=somename.js </script>
oczywiście zamień „somename” na jakąś nazwę;), a następnie zobaczysz go w debuggerze chrome w „Sources> top> (bez domeny)> somename.js” jako normalnym skrypcie i będziesz mógł debugować go jak inne skrypty
źródło
Odśwież stronę zawierającą skrypt, gdy narzędzia programistyczne są otwarte na karcie skryptów. Spowoduje to dodanie pozycji (programu) do listy plików, która pokazuje HTML strony wraz ze skryptem. Stąd możesz dodać punkty przerwania.
źródło
Inną intuicyjną prostą sztuczką do debugowania, zwłaszcza skryptu w html zwróconym przez ajax, jest tymczasowe umieszczenie konsoli.log („test”) w skrypcie.
Po uruchomieniu zdarzenia otwórz kartę konsoli w narzędziach programisty. zobaczysz link do pliku źródłowego pokazany po prawej stronie instrukcji drukowania debugowania „test”. po prostu kliknij źródło (coś jak VM4xxx) i możesz teraz ustawić punkt przerwania.
PS: poza tym możesz rozważyć użycie instrukcji „debugger”, jeśli używasz chrome, jak sugeruje @Matt Ball
źródło
Moja sytuacja i co zrobiłem, aby to naprawić:
mam plik javascript zawarty na stronie HTML w następujący sposób:
Nazwa strony: test.html
Teraz wchodząc w debuger Javascript w Chrome, klikam kartę Skrypty i rozwijam listę, jak pokazano powyżej. Widzę wyraźnie skrypty / common.js, ale NIE mogłem zobaczyć bieżącej strony HTML test.html w menu rozwijanym, dlatego nie mogłem debugować wbudowanego javascript:
To było kłopotliwe. Jednak po usunięciu przestarzałego typu = "text / javascript" z osadzonego skryptu:
..i odświeżyła / ponownie załadowała stronę, voila, pojawiła się na liście rozwijanej i wszystko znów było dobrze.
Mam nadzieję, że jest to pomocne dla każdego, kto ma problemy z debugowaniem wbudowanego javascript na stronie HTML.
źródło
type
jest wymaganym atrybutem. W HTML5 jest opcjonalny.<div>
uniemożliwiło mi zobaczenie kodu w debuggerzeDodanie
debugger;
na moim skrypcie działało dla mnie.źródło
Miałem również ten sam problem, jak debugować JavaScript, który jest wewnątrz
<script>
tagów. Ale potem znalazłem go w zakładce Źródła, zwanej „(indeks)”, z nawiasami. Kliknij numer linii, aby ustawić punkty przerwania.To jest Chrome 71.
źródło
Jeśli nie widzisz karty „Skrypty”, upewnij się, że uruchamiasz Chrome z odpowiednimi argumentami. Miałem ten problem, gdy uruchomiłem Chrome do debugowania JavaScript po stronie serwera z argumentem
--remote-shell-port=9222
. Nie mam problemu, jeśli uruchomię Chrome bez żadnych argumentów.źródło
Natknąłem się na ten problem, jednak moją funkcją wbudowaną był widok kątowy JS. Dlatego po załadowaniu nie mogłem uzyskać dostępu do wbudowanego skryptu w celu dodania debugowania, ponieważ tylko karta index.html była dostępna na karcie źródeł debugera.
Oznaczało to, że kiedy otwierałem konkretny widok za pomocą wbudowanego (nie miałem wyboru), nie był dostępny.
Jedynym sposobem, w jaki udało mi się go trafić, było wstawienie błędnej funkcji lub wywołanie wewnątrz wbudowanej funkcji JS.
Moje rozwiązanie obejmowało:
Oznacza to, że kiedy kliknąłem przycisk, w konsoli Chrome zostałem poproszony.
Ważną rzeczą było tutaj:
VM5658:6
kliknięcie tego pozwoliło mi przejść przez linię i zatrzymać punkt przerwania na później.Niezwykle skomplikowany sposób na dotarcie do niego ... Ale zadziałał i może się przydać w przypadku aplikacji jednostronicowych, które dynamicznie ładują twoje wyświetlenia.
Nie
VM[n]
ma znaczącej wartości, an
on odpowiada identyfikatorowi skryptu. Te informacje można znaleźć tutaj: Chrome „[VM]”źródło
Za pomocą programu Visual Studio (2012) miałem ten sam problem i przejście do IIS Express rozwiązało problem!
W
script
tagutype
atrybut nie czynnik do niego.Z jakiegoś powodu Visual Studio Development Server nie zapewnia wszystkiego, czego Chrome potrzebuje, aby włączyć punkty przerwania.
źródło
Wiem, że nie chodzi o
Firefox
pytanie Q, ale nie chciałem dodawać kopii tego pytania, aby samemu na nie odpowiedzieć.W przeglądarce Firefox musisz dodać,
debugger;
aby móc robić to, co @ mat-ball sugeruje dlascript
tagu.Tak więc w kodzie dodajesz
debugger
powyżej linii, którą chcesz debugować, a następnie możesz dodawać punkty przerwania. Jeśli tylko ustawisz punkty przerwania w przeglądarce, nie zatrzyma się.źródło
Jest to rozszerzenie powyższej odpowiedzi Riana Schmitsa . W moim przypadku kod HTML był osadzony w kodzie JavaScript i nie widziałem nic poza kodem HTML. Może debugowanie Chrome zmieniło się na przestrzeni lat, ale kliknięcie prawym przyciskiem myszy karty Źródła / Źródła pokazało mi Dodaj folder do obszaru roboczego . Byłem w stanie dodać cały mój projekt, który dał mi dostęp do wszystkich moich skryptów JavaScript. Więcej szczegółów znajdziesz w tym linku . Mam nadzieję, że to komuś pomoże.
źródło