Gdzie czytać komunikaty konsoli z background.js w rozszerzeniu Chrome?

194

Właśnie zacząłem od rozszerzeń Google Chrome i nie mogę się zalogować do konsoli z mojego pliku js w tle. Gdy wystąpi błąd (na przykład z powodu błędu składniowego), nie mogę również znaleźć żadnych komunikatów o błędach.

Mój plik manifestu:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "pageCapture",
    "tabs"
  ]
}

background.js:

alert("here");
console.log("Hello, world!")

Gdy ładuję rozszerzenie, pojawia się alert, ale nie widzę niczego, co jest rejestrowane w konsoli. Co ja robię źle?

uszczęśliwiony
źródło
2
możliwy duplikat Jak debugować skrypt Google Chrome w tle?
ripper234,
Wybierz wiadomości lub informacje, jeśli podświetlony pasek znajduje się na innych kartach, np. Nie zaznaczono
żadnych pełnych zakładek

Odpowiedzi:

376

Patrzysz w złe miejsce. Zarejestrowane komunikaty konsoli nie pojawiają się na stronie internetowej, ale na (niewidocznej) stronie w tle. Aby zobaczyć te komunikaty w konsoli, wykonaj następujące kroki:

Wizyta chrome://extensions/.
Możesz także kliknąć prawym przyciskiem myszy ikonę rozszerzenia, a następnie kliknąć „Zarządzaj rozszerzeniami”.

  1. Włącz tryb programisty
  2. Kliknij link swojej strony w tle (w „Sprawdź widoki”).
  3. Otwiera się konsola programisty dla tej strony .

Nowy interfejs użytkownika:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Stary interfejs użytkownika:

wizerunek

Rob W.
źródło
@RobW, nie mam trójkątnego przycisku, aby rozwinąć rozszerzenie i nie widzę żadnych aktywnych widoków. Czy ta odpowiedź nie jest już rozwiązaniem dla najnowszej wersji Chrome, czy coś mi brakuje?
gwg
1
@ggundersen Zaktualizowałem zdjęcie. Trójkąt został usunięty, ten krok jest teraz automatycznie wykonywany po aktywacji trybu programisty.
Rob W
jak wtedy debugujesz skrypty zawartości?
SuperUberDuper
1
@SuperUberDuper Poprzez devtools na zakładce, na której działa skrypt treści.
Rob W
13

Miałem ten sam problem, w moim przypadku rejestrowanie ustawiono na „Ukryj wszystko” na karcie konsoli w narzędziach Chrome dla programistów. Nawet nie zdawałem sobie sprawy, że to była opcja i nie pamiętam, żeby ją wyłączyć

zrzut ekranu ustawienia w zakładce konsoli w narzędziach chrome dev

Michiel
źródło
7

W przypadku obserwujących, którzy chcą zobaczyć konsolę debugowania dla „skryptu zawartości” swojego rozszerzenia chrome, jest ona dostępna, wykonując normalną „konsolę programisty pokazu”, a następnie użyj strzałki rozwijanej, aby wybrać jej „środowisko javascript”, aby uzyskać dostęp do jego metod itp.

wprowadź opis zdjęcia tutaj

rogerdpack
źródło
5

do tego

jeśli chcesz zobaczyć content_scriptplik js (gdy nie ustawiono właściwości „background”) w pliku manifest.json

"content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["popup.js"],
  }]

"browser_action": {
    "default_icon": "icon_32.png",
    "default_popup": "popup.html"
  }

następnie kliknij prawym przyciskiem myszy ikonę rozszerzenia i kliknij Sprawdź wyskakujące okienko, a okno programisty otworzy się z wyskakującym okienkiem.html, tam zobaczysz kartę konsoli.

diEcho
źródło
9
1) To nie odpowiada na pytanie, 2) To po prostu źle; skrypt treści rejestruje wiadomości w konsoli strony, na którą jest wstrzykiwany, tj. w rzeczywistej karcie przeglądarki. Przypuszczam, że w twoim kodzie popup.jszostał ponownie użyty w popup.html, i jako taki wynik tej kopii trafia do miejsca, o którym wspomniałeś. Ale to całkowicie wprowadza w błąd.
Xan
2
ta odpowiedź pomaga mi sprawdzić dziennik rozszerzenia chrome, które działają jako wyskakujące okienko
RashFlash
1

Podobnie do odpowiedzi Michiela miałem również zabawną konfigurację konsoli: filtr, którego nie pamiętam ustawienie:

wprowadź opis zdjęcia tutaj

Po wyczyszczeniu filtra zobaczyłem wiadomości.

Tonio Liebrand
źródło
1

Jeśli chcemy czytać komunikaty drukowane na konsoli ze strony wyskakującej, możemy kliknąć ikonę rozszerzenia, aby otworzyć stronę wyskakującą, a następnie kliknąć prawym przyciskiem myszy stronę wyskakującą w dowolnym miejscu, wyświetli się menu rozwijane, wystarczy kliknąć menu „Sprawdź”, aby otwórz narzędzie programistyczne. Zauważ, że wyskakująca strona musi się ciągle otwierać. Jeśli jest zamknięty (przez window.close ()), narzędzie programistyczne również zostanie zamknięte.

Token Yi
źródło
0

Też miałem ten problem. Wygląda na to, że moja strona internetowa nie aktualizowała się do nowo zapisanego skryptu. Zostało to rozwiązane przez naciśnięcie Ctrl+ odświeżania (lub Ctrl+ F5) w przeglądarce Chrome.


źródło