Почему browser.runtime.getBackgroundPage () разрешается в null в скрипте действия страницы? - PullRequest
0 голосов
/ 23 января 2019

В следующем коде

browser.runtime.getBackgroundPage().then(bgp=>{
  document.querySelector("button").addEventListener("click", e=>{
    alert(bgp);
  });
});

bgp оказывается null. Я искал и чаще всего предлагал расширения для Chrome, предлагая добавить разрешение "background", что недопустимо для Firefox. Я также попытался явно добавить фоновую страницу, хотя она всегда должна создаваться для меня, но она тоже не работала.

1 Ответ

0 голосов
/ 25 января 2019

runtime.getBackgroundPage () обеспечивает доступ к фоновому сценарию, а не к HTML-документу.

Это обеспечивает удобный способ для других привилегированных сценариев расширения получить прямой доступ кобласть действия фонового скрипта.Это позволяет им получать доступ к переменным или вызывать функции, определенные в этой области.«Привилегированный сценарий» здесь включает в себя сценарии, выполняемые на страницах параметров, или сценарии, выполняемые в действии браузера или всплывающих окнах, но не включает в себя сценарии содержимого.

Например, следующий код регистрирует <unavailable> вконсоль.

browser.runtime.getBackgroundPage().then(bg => console.log(bg));

Объект окна можно увидеть в консоли отладки.

...