Я пробую руки при простом Расширении 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]'.
Вам нужно окружить значение поля content_scripts
в квадратных скобках:
"content_scripts": [ {
"matches": ["http://*"],
"js": ["scripts.js"]
} ]
(дополнительную информацию см. в Chrome Docs )
Кстати, используя http: // * / *
будет лучше соответствовать всем URL-адресам (см. документы ), добавив https: // * / *
, если вам также нужно сопоставить их.
Изменить:
После вашего редактирования вы получаете ошибку из-за неправильного шаблона соответствия.