Декларация расширения Chrome 'соответствия'

Я пробую руки при простом Расширении Chrome, но сталкиваюсь с проблемой с обеспечением значения для matches массив в моем content_scripts.

{
  "name": "My Extension",
  "version": "1.0",
  "description": "My Extension Experiment",
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "Ext",
    "default_popup": "popup.html"
  },
  "content_scripts": {
    "matches": ["http://*"],
    "js": ["scripts.js"]
  }
}

Когда я пытаюсь загрузить это расширение в Chrome, я получаю следующее сообщение:

Не мог загрузить расширение из 'C:\Users\foo\Desktop\Extensions\bar'.
Недопустимое значение для 'content_scripts'.

Я не вижу то, что "недопустимо" о моем значении все же. То, что я пытаюсь сделать, соответствовать каждому URL, таким образом, мое расширение может управлять DOM (с помощью JavaScript в scripts.js) из любой страницы это, работал. Я пропускаю что-то, идя об этом неправильно, или что?

обновление

После регистрации этого вопроса я действительно замечал, что пример Google немного отличался, чем мой, таким образом, я изменил свой код немного для отражения их синтаксиса:

"content_scripts": [{
  "matches": ["http://*"],
  "js": ["scripts.js"]
}]

Однако я все еще получаю следующую ошибку при попытке загрузить мое расширение:

Не мог загрузить расширение из 'C:\Users\foo\Desktop\Extensions\bar'.
Недопустимое значение для 'content_scripts [0] .matches [0]'.

41
задан Aristotle 4 May 2010 в 23:07
поделиться

1 ответ

Вам нужно окружить значение поля content_scripts в квадратных скобках:

"content_scripts": [ {
  "matches": ["http://*"],
  "js": ["scripts.js"]
} ]

(дополнительную информацию см. в Chrome Docs )

Кстати, используя http: // * / * будет лучше соответствовать всем URL-адресам (см. документы ), добавив https: // * / * , если вам также нужно сопоставить их.

Изменить:

После вашего редактирования вы получаете ошибку из-за неправильного шаблона соответствия.

61
ответ дан 27 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: