Манифест расширения Chrome V3 Как читать HTML и текстовое содержимое веб-страницы, которую просматривает мой пользователь

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

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

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

Вот соответствующий код из моего фонового скрипта:

      if (onSite){
  scrapeSite(onSite);
}

onSite всегда является истинным / активным только тогда, когда он заполняется URL-адресом сайта, который я хочу посетить.

Соответствующий код для scrapeSite:

      function scrapeSite{
   try {
    book = document.getElementById("bookTitle");
    if (book){
     console.log(`${book}`);
     }
    }
    catch(err) {
      console.log(`No Book Title Found`);
      console.log(`${book}`);
     }
    }
}

Если я удалю перехватчик (err), то в журнале консоли будет выведен следующий ответ обработки ошибок: ReferenceError: документ не определен в scrapeSite

Я действительно просто пытаюсь учиться здесь, поэтому был бы признателен за любые предложения относительно лучшей документации, рекомендуемых вопросов о стеке и т. Д. Также, если вы изучали manifest v3 и у вас есть предложения по хорошей документации / руководствам в целом, это было бы здорово.

1 ответ

Что вам нужно сделать, так это добавить сценарий содержимого в файл манифеста, например:

      "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content_script.js"]
        }
    ],

С заменой «<all_urls>» URL-адресом сайта или сайтов, в которые вы хотите внедрить контент-скрипт.

Нет необходимости в фоновом сценарии вообще, сценарий контента вводится автоматически, если URL-адрес соответствует шаблону соответствия URL-адреса.

Для получения дополнительной информации вы должны прочитать эту страницу .