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

Это мой manifest.json:

{

  "manifest_version": 2,
  "name": "Test Extension",
  "version": "0.1",

  "description": "This is a test extension",

  "icons": {
    "48": "icons/icon-48.png"
  },

  "content_scripts": [
    {
      "js": ["test.js", "main.js"],
      "matches": ["*://*.netflix.com/*"],
      "run_at": "document_end"
    }
  ]

}

Теперь у меня есть два скрипта, которые я хочу использовать вместе: test.js и main.js.

test.js :

var test = "Hello";
console.log("This is a test");

И main.js:

console.log(test);

Переменная, объявленная в test.js, должна быть глобальной и доступной из скрипта main.js, но когда я пробую ее в хроме, она говорит, что «тест не определен». Очевидно, первый сценарий даже не выполняется, потому что console.log, который я добавил в test.js, вообще не отображается в консоли. Я также убедился, что test.js находится перед main.js, чтобы он загружался в правильном порядке, и я также попытался использовать библиотеку, такую ​​как jquery, но я просто не могу получить доступ к переменным и функциям из другой файл внутри main.js.

Любая помощь приветствуется.

0
Mertyn 18 Июн 2020 в 18:48

1 ответ

Лучший ответ

Я использую надстройку «Extension Reloader» для Chrome, чтобы быстро перезагрузить мое расширение и текущий сайт, и, по-видимому, он не перезагружает manifest.json. Изменения в файлах, которые уже есть в манифесте, работают, но когда вы добавляете в него другой файл, он не запускается.
Поэтому, если вы также используете это расширение, обязательно перезагрузите свое расширение в chrome://extensions при изменении что-нибудь в манифесте.

0
Mertyn 18 Июн 2020 в 17:24