2009-05-21 22 views
36

To pytanie zostało zadane w podobny sposób before, ale nie mogę debugować JavaScript w przeglądarce Google Chrome.Google Chrome Javascript Debugger i skrypty zawartości

Jeśli pójdę do strona> Developer "Debug Javascript" (Ctrl + Przesunięcie + L) jest wyłączona. Alt + ` nie działa.

Zajmuję się rozszerzeniem "skryptu treści", więc uruchamiam chrome z --enable-extensions.

Co chciałbym zrobić najlepiej, to ustawić punkty przerwania i przechodzić/przechodzić przez mój skrypt podczas jego wykonywania. Jestem trochę ponad moją głową, jeśli chodzi o JavaScript, więc wszelkie wskazówki są mile widziane.

Mogę dostać się do "Konsoli JavaScript", ale nie mogę znaleźć skryptów zawartości w tym. Nie jestem również pewien, jak to się różni od "JavaScript Debugger".

Używam najnowszej wersji Chrome Chrome (2.0.181.1) w systemie Windows XP.

+0

możesz odłożyć wersję systemu Windows, z którego korzystasz: XP, Vista, 7RC ... Wiem, że Chrome i Windows 7 nie radzą sobie szczególnie dobrze. – Joel

Odpowiedz

34

Wszystkie te odpowiedzi wydają się być nieaktualne, a ponieważ jest to bardzo wysoko w Google, oto aktualna odpowiedź:

W przeglądarce Chrome naciśnij CTRL+SHIFT+i, aby wywołać narzędzia dla programistów.

kliknij małą strzałkę, która pozwala wybrać spośród skryptów enter image description here

Następnie wybierz 'skrypty Content' Select 'źródła'

enter image description here

Następnie musisz znać identyfikator twojego rozszerzenia (dostępny na stronie rozszerzeń zarządzania chrome), aby dostać się do skryptów i normalnie je debugować.

+0

Wow, podmuch z przeszłości. Naprawdę nie pamiętam nic na temat tego pytania/rozwijania rozszerzeń Chrome, ale wygląda na to, że jest to solidna odpowiedź. Dziękujemy za wiadomość. –

+0

Nie musisz już znać identyfikatora rozszerzenia. Ponownie wylistowane przez nazwę. – Teepeemm

+0

Również jeśli zepsujesz sekcję content_scripts w twoim manifeście, po prostu nie zobaczysz y nasz skrypt zawartości jest wymieniony, błąd cicho. Na przykład, jeśli chcesz załadować jeden na Facebooka i umieścić tylko https://www.facebook.com/ w content_scripts, nie będziesz go ładował za każdym razem, gdy nie byłeś na stronie głównej (bez końcowej gwiazdki) lub w linkach zawierających domenę mobilną (m.facebook.com) itp –

7

Kliknij prawym przyciskiem myszy i wybierz opcję Sprawdź element, tam znajdziesz debugger JS oraz inne narzędzia do debugowania. Debuger JS powinien umożliwiać ustawianie punktów przerwania itp.

+0

Cóż, to jest konsola JavaScript, a nie debugger. Wydaje się, że jest różnica. Prawdopodobnie jestem tutaj gęsty, ale nie mogę znaleźć sposobu na wstawienie punktów przerwania do skryptu w tym momencie. Jak mogę zobaczyć funkcję skryptu treści, którą dodałem jako detektor zdarzeń do określonego obiektu? np. Chcę móc debugować "myFuncHere()" w this.addEventListener ("click", myFuncHere, true); –

+2

Po kliknięciu przycisku "Skrypty" u góry okna Inspektora powinien to być debuger. Możesz wybrać określone źródło skryptu z rozwijanego menu, a następnie kliknąć numer wiersza, aby ustawić punkt przerwania. – Scott

+0

Dzięki za podpowiedź, Scott, ale nie widzę tam żadnego z moich skryptów użytkownika, tylko te z właściwej strony. Czy czegoś brakuje? –

3

Co musisz zrobić, to włączyć rozszerzenie, a następnie w Chrome kliknąć "Developer" -> "Javascript Console". Następnie kliknij zakładkę "Skrypty". Po tym powinna pojawić się lista poniżej wszystkich załadowanych skryptów. Zobaczysz skrypty dla bieżącej strony, a także wszystkie skrypty dla zainstalowanych rozszerzeń. (Jeśli po otwarciu konsoli nie widać żadnych skryptów, być może trzeba będzie odświeżyć)

Wygląda na to, że wszystkie rozszerzenia Chrome mają przypisany unikatowy identyfikator. Możesz sprawdzić swój identyfikator, wyświetlając stronę Rozszerzenia Chrome w trybie programisty.

To tylko kwestia przeszukiwania skryptów w liście rozwijanej dla skryptu. Wybierz swój skrypt i można ustawić punkty przerwania itp

Jest dużo więcej informacji na temat narzędzi Chrome Dev tutaj: http://www.chromium.org/devtools

44

umieścić następujące polecenie w skrypcie:

debugger; 

które rozpocznie debugger JavaScript, gdy dojdzie do tego punktu

+0

Czy firebug obsługuje tę szansę? –

+1

Myślę, że działa to w Firebug, dlaczego nie spróbować i odpowiedzieć tutaj, jeśli to działa? :) – Rory

+3

To jest najlepszy dzień w moim życiu, dzięki ! – Hassek