Ответ 1
Указание content_scripts
внутри manifest.json является немного ограничивающим. Хотя вы можете указать разные шаблоны соответствия, вы можете выполнить только одно возможное количество файлов.
Чтобы достичь того, чего вы хотите, вам нужно настроить background_page
, который может интерпретировать URL-адреса страниц, и запускать сценарии содержания по своему усмотрению.
Существуют три разных метода:
-
Используйте манифест
content_scripts
для соответствия всем возможным URL-адресам и выполните простой контент script, чтобы отправить запрос на фоновый рисунок с помощьюchrome.extension.sendRequest()
. Фоновая страница прослушивает сообщения сchrome.extension.onRequest.addListener()
, получает сообщение, интерпретирует URL-адрес вкладки сsender.tab.url
(или имеет сообщение табуляцииwindow.location.hostname
, возможно, проще), затем решает, какие скрипты содержимого следует вводить на вкладку с помощьюchrome.tabs.executeScript()
.
или -
Просто попросите
background_page
прослушатьchrome.tabs.onCreated.addListener()
иchrome.tabs.onUpdated.addListener()
, чтобы получить URL-адрес вкладки, а затем решить, какие скрипты содержимого следует вводить на вкладку с помощьюchrome.tabs.executeScript()
. Не нужно указыватьcontent_scripts
в манифесте для этого.
или -
Аналогично 1, но у вашего манифеста
content_scripts
script выяснить, что делать на основе текущего URL-адреса (снова можно интерпретироватьwindow.location.hostname
), затем используйтеchrome.extension.sendRequest()
с сообщением для вашегоbackground_page
, в котором указывается, какие скрипты содержимого должны выполняться (что означает, что вашbackground_page
не принимает решения - исходный контент script). Тем не менее, тот же результат.