Jak wydrukować komunikaty debugowania w konsoli JavaScript Google Chrome?
Pamiętaj, że konsola JavaScript nie jest tym samym co debuger JavaScript; mają różne składnie AFAIK, więc polecenie drukowania w JavaScript Debugger nie będzie tutaj działać. W konsoli JavaScript print()
wyśle parametr do drukarki.
javascript
console
debugging
google-chrome
Tamas Czinege
źródło
źródło
console.log()
jest świetny do debugowania js ... Często zapominam o użyciu go w praktyce.console.log()
kod powinien zostać usunięty z kodu produkcyjnego przed wdrożeniem.Console.Log
należy usunąć z kodu produkcyjnego przed wdrożeniem, ponieważ jeśli nie, wiadomości te będą logować się do konsoli JavaScript użytkowników. Chociaż raczej go nie zobaczą, zajmuje ono pamięć w urządzeniu. Ponadto, w zależności od zawartości dziennika, potencjalnie mówisz innym, jak zhakować / odtworzyć aplikację.Udoskonalając pomysł Andru, możesz napisać skrypt, który tworzy funkcje konsoli, jeśli nie istnieją:
Następnie skorzystaj z jednego z poniższych:
Funkcje te rejestrują różne typy elementów (które można filtrować na podstawie dziennika, informacji, błędu lub ostrzeżenia) i nie powodują błędów, gdy konsola nie jest dostępna. Te funkcje będą działać w konsolach Firebug i Chrome.
źródło
if (!window.console) {
a następnie umieścił wszystko w nawiasach? W tej chwili oceniasz te same rzeczy cztery razy.Po prostu dodaj fajną funkcję, której brakuje wielu programistom:
Jest to magiczny
%o
zrzut, który można kliknąć i który można głęboko przeglądać w obiekcie JavaScript.%s
pokazano tylko dla zapisu.To też jest fajne:
Co daje ślad stosu podobny do Java do punktu
new Error()
wywołania (w tym ścieżkę do pliku i numer linii !).Zarówno
%o
inew Error().stack
są dostępne w Chrome i Firefox!Również w przypadku śladów stosu w przeglądarce Firefox:
Jak mówi https://developer.mozilla.org/en-US/docs/Web/API/console .
Miłego hakowania!
AKTUALIZACJA : Niektóre biblioteki są pisane przez złych ludzi, którzy redefiniują
console
obiekt do własnych celów. Aby przywrócić oryginalną przeglądarkęconsole
po załadowaniu biblioteki, użyj:Zobacz pytanie Przepełnienie stosu Przywracanie console.log () .
źródło
Krótkie ostrzeżenie - jeśli chcesz przetestować w Internet Explorerze bez usuwania wszystkich console.log (), musisz użyć Firebug Lite lub otrzymasz kilka niezbyt przyjaznych błędów.
(Lub utwórz własną konsolę.log (), która po prostu zwraca wartość false.)
źródło
console
obiekt zostanie utworzony i istnieje do momentu zamknięcia tego wystąpienia przeglądarki.Oto krótki skrypt sprawdzający, czy konsola jest dostępna. Jeśli tak nie jest, próbuje załadować Firebug, a jeśli Firebug nie jest dostępny, ładuje Firebug Lite. Teraz możesz używać
console.log
w dowolnej przeglądarce. Cieszyć się!źródło
Oprócz odpowiedzi Delana Azabani , lubię się dzielić
console.js
i używam do tego samego celu. Tworzę konsolę noop, używając tablicy nazw funkcji, co jest moim zdaniem bardzo wygodnym sposobem, aby to zrobić, i zająłem się Internet Explorerem, który maconsole.log
funkcję, ale nieconsole.debug
:źródło
Lub użyj tej funkcji:
źródło
console.constructor === Object && (log = m => console.log(m))
Oto moja klasa otoki konsoli. Daje mi to również zakres działania, aby ułatwić życie. Zwróć uwagę na użycie
localConsole.debug.call()
takiego, którylocalConsole.debug
działa w zakresie klasy wywołującej, zapewniając dostęp do jejtoString
metody.Daje to wynik tak jak w Firebug :
Lub Chrome:
źródło
Osobiście używam tego, który jest podobny do tarka11011:
Chodzi przede wszystkim o to, że dobrym pomysłem jest, aby przynajmniej poćwiczyć logowanie poza
console.log()
kodowaniem bezpośrednio w kodzie JavaScript, ponieważ jeśli o nim zapomnisz i znajduje się on na stronie produkcyjnej, może potencjalnie złamać cały kod JavaScript dla tej strony.źródło
if(windows.console) console.log(msg)
?window.console
masz na myśli. przydałaby się próba tylko wtedy, gdy błąd został zgłoszony (jeśli plik console.log nie był funkcją), ponieważ konsola została ponownie zdefiniowana. Robieniewindow.console && window.console.log instanceof Function
byłoby bardziej przydatne.Możesz użyć,
console.log()
jeśli masz debugowany kod w jakim edytorze oprogramowania do programowania i zobaczysz wynik, który prawdopodobnie jest najlepszym edytorem dla mnie (Google Chrome). Po prostu naciśnij F12i naciśnij kartę Konsola. Zobaczysz wynik. Szczęśliwego kodowania. :)źródło
Miałem wiele problemów z programistami sprawdzającymi instrukcje w konsoli. (). Naprawdę nie lubię debugowania programu Internet Explorer, pomimo fantastycznych ulepszeń programu Internet Explorer 10 i Visual Studio 2012 itp.
Więc przesłoniłem sam obiekt konsoli ... Dodałem flagę __localhost, która zezwala na instrukcje konsoli tylko na localhost. Dodałem również funkcje konsoli. () Do Internet Explorera (zamiast tego wyświetla się alert ()).
Przykładowe zastosowanie:
Chrome / Firefox:
Internet Explorer:
Dla tych, którzy przyjrzą się kodowi, odkryjesz funkcję console.examine (). Stworzyłem to lata temu, aby pozostawić kod debugowania w niektórych obszarach wokół produktu, aby pomóc w rozwiązywaniu problemów związanych z kontrolą jakości / klientem. Na przykład zostawiłbym następujący wiersz w jakimś wydanym kodzie:
Następnie w wydanym produkcie wpisz następujące polecenie w konsoli (lub pasek adresu z prefiksem „javascript:”):
Następnie zobaczę wszystkie zarejestrowane instrukcje console.examine (). To była fantastyczna pomoc wiele razy.
źródło
Proste Internet Explorer 7 i poniżej podkładki który zachowuje linii numeracji dla innych przeglądarek:
źródło
Ta metoda drukuje tekst w konsoli w jasnoniebieskim kolorze.
źródło
Dalsze udoskonalanie pomysłów Delana i Andru (dlatego ta odpowiedź jest wersją zredagowaną); Konsola.log prawdopodobnie istnieje, podczas gdy inne funkcje mogą nie istnieć, dlatego domyślną mapę należy odwzorować na tę samą funkcję, co konsola.log ....
Możesz napisać skrypt, który tworzy funkcje konsoli, jeśli nie istnieją:
Następnie skorzystaj z jednego z poniższych:
Funkcje te rejestrują różne typy elementów (które można filtrować na podstawie dziennika, informacji, błędu lub ostrzeżenia) i nie powodują błędów, gdy konsola nie jest dostępna. Te funkcje będą działać w konsolach Firebug i Chrome.
źródło