Можем ли мы вызывать функции расширения из скриптов страниц? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть функция в моем расширении:

function doStuff() {
  // Do stuff
}

Я бы хотел вызвать ее из скрипта на странице:

<!doctype html>

<html>
  <head>
    <title>Extension Test</title>
    <script>doStuff();</script>
  </head>
  <body>
    <p>This is a test.</p>
  </body>
</html>

Однако я получаюошибка в консоли:

Uncaught ReferenceError: doStuff не определен в (index): 6

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 02 марта 2019

сначала вы должны добавить следующий код в файл manifest.json:

{
  "name": "My extension",
  ...
  "content_scripts": [
    {
      "matches": [ "http://*/", "https://*/" ],
      "js": ["content.js"],
      "run_at": "document_start"
    }
  ],
  "permissions": [
    "http://*/",
    "https://*/"
  ]
  ...
}

Теперь вам нужно создать файл content.js, содержимое которого:

const injectedScript = document.createElement('script');
injectedScript.src = chrome.extension.getURL('injected.js');
(document.head || document.documentElement).appendChild(injectedScript);

Затемсоздайте файл injected.js и напишите свой код в этом файле, например:

function doStuff() {
  // Do stuff
}

Надеюсь, я понимаю, что вы имеете в виду.Если есть проблема, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...