Нет, невозможно изменить URL-адреса, в которые будет происходить внедрение для manifest.json
content_script
(либо CSS, либо JavaScript). Указанный код будет внедрен во все соответствующие URL-адреса. Это по нескольким причинам.
Одной из причин, по которой это невозможно, является безопасность/прозрачность для пользователя. В файле manifest.json явно указано, какие URL-адреса будет изменять ваш сценарий контента, указано, что он будет изменять активную вкладку или что он будет иметь доступ ко всем URL-адресам/вкладкам. Если бы вам было разрешено изменять URL-адреса, вы фактически получили бы возможность доступа ко всем URL-адресам без явного объявления того, что вы это делаете.
Да, можно было бы заявить, что вы собираетесь это сделать. В Chrome есть экспериментальный способ сделать это с помощью chrome.declarativeContent
. В Chrome это считается экспериментальным, даже после того, как он был доступен в течение пары/несколько лет. Он недоступен в Firefox. Когда он будет доступен и будет ли он доступен в Firefox, пока неясно. Кроме того, даже в Chrome отсутствуют некоторые функции, доступные для других методов внедрения скриптов (например, run_at
/runAt
).
Чтобы иметь полный контроль над внедрением или отказом от внедрения, вам необходимо выполнить внедрение через tabs.insertCSS()
и/или tabs.executeScript()
. Внедрение или отказ от внедрения скриптов и CSS с помощью этих методов полностью контролируется JavaScript в вашем расширении. Используя эти методы, можно получить функциональность, аналогичную той, которую вы получаете с помощью manifest.json
content_script
записей, но с большим контролем. Этот больший контроль достигается за счет большей сложности.
person
Makyen♦
schedule
13.12.2016
content_script
? и Как я могу внедрить сценарии содержимого в URL-адреса, которые я определяю динамически? Несмотря на то, что они связаны, было бы намного лучше, если бы это были два отдельных Вопроса, а не объединенные в один Вопрос. Измените этот вопрос на один из них и задайте другой вопрос для другого. - person Makyen♦   schedule 13.12.2016