Buduję a Przycisk paska narzędzi Rozszerzenie dla Firefoksa. W moim skrypcie w tle, muszę uzyskać dostęp do document dla bieżącej karty po kliknięciu przycisku narzędzi.

window W tym kontekście jest okno dla rozszerzenia, a nie dla bieżącej karty. Inne funkcje, takie jak browser.tabs.getCurrent() nie pracuj w skryptach tła.

Wiem, że możliwe jest, ponieważ inne rozszerzenia mają dostęp do bieżącego dokumentu (np. 1Password zidentyfikuje i wypełnić elementy input.)

Uwaga: wszystkie poprzednie pytania dotyczące tej samej funkcjonalności od 2010, 2012 itp. Nie są już wartością.

0
Chris 31 grudzień 2019, 19:11

1 odpowiedź

Najlepsza odpowiedź

Aby uzyskać aktywną kartę w bieżącym oknie, można użyć Tabs.Query () <)

Na przykład.:

browser.tabs.query({currentWindow: true, active: true})

Tak uzyskać aktywną kartę.

Karta jest oddzielna od strony treści (strona internetowa). Aby wchodzić w interakcje z stroną kontekstową, musisz wstrzyknąć swój kod na stronie.

Na przykład za pomocą Tabs.executcript ().

Podczas wstrzykiwania na aktywnej karcie nie ma potrzeby, aby uzyskać aktywną kartę oddzielnie więcej, ponieważ tabs.executeScript() wstrzykuje się na aktywną kartę, jeśli zostanie pominięty tabId.

Na przykład.:

browser.tabs.executeScript({
  code: `console.log('location:', window.location.href);`
});
1
erosman 1 styczeń 2020, 20:39