Запустите расширение “gather from tabs” для Firefox на Chromium для реализации JavaScript.

Вопрос или проблема

https://addons.mozilla.org/en-US/firefox/addon/gather-from-tabs/

Я хочу запустить этот код на каждой вкладке в Chrome и указать количество слов в заголовке каждой вкладки.

/* Подсчет слов */
(() => { 
  const words = document.body.innerText.split(/\s+/).length;
  document.title = "(" + words + ") " + document.title;
  return words + " " + document.location.href + "\n";
})()

Ответ или решение

Для реализации функциональности, описанной в вашем запросе, необходимо использовать подход, который позволит запускать JavaScript-код на всех открытых вкладках в браузере Chromium. Поскольку расширение "Gather from Tabs" специально создано для Mozilla Firefox, его нельзя напрямую использовать в Chromium. Однако, мы можем создать аналогичное расширение для Chrome, которое будет выполнять желаемый код.

Создание Расширения для Chrome

  1. Структура Расширения
    Создайте папку для вашего расширения, например, word-counter. В этой папке создайте следующие файлы:

    • manifest.json
    • background.js
    • content.js
  2. Файл manifest.json
    В manifest.json опишите ваше расширение:

    {
     "manifest_version": 3,
     "name": "Word Counter",
     "version": "1.0",
     "permissions": ["tabs", "scripting"],
     "action": {
       "default_popup": "popup.html"
     },
     "background": {
       "service_worker": "background.js"
     },
     "content_scripts": [
       {
         "matches": ["<all_urls>"],
         "js": ["content.js"]
       }
     ]
    }
  3. Файл background.js
    В этом файле вы можете управлять работой вашего расширения и отправлять сообщения контент-скриптам для выполнения кода:

    chrome.action.onClicked.addListener((tab) => {
     chrome.tabs.query({}, (tabs) => {
       tabs.forEach((tab) => {
         chrome.scripting.executeScript({
           target: { tabId: tab.id },
           function: countWords
         });
       });
     });
    });
    
    function countWords() {
     const words = document.body.innerText.split(/\s+/).length;
     document.title = `(${words}) ${document.title}`;
     console.log(`${words} ${window.location.href}\n`);
    }
  4. Файл контентного скрипта (content.js)
    Этот файл не требуется в данном случае, так как все действия будут выполняться из фона, но оставим его для будущих расширений.

Установка и тестирование расширения

  1. Откройте Chrome и перейдите на страницу chrome://extensions/.
  2. Включите режим разработчика (Developer mode) в правом верхнем углу.
  3. Нажмите "Загрузить распакованное расширение" (Load unpacked) и выберите папку word-counter.
  4. Теперь вы должны увидеть ваше расширение в списке. При нажатии на иконку, код будет выполнен на всех открытых вкладках.

Заключение

Создав свое расширение, вы сможете запускать код JavaScript на всех открытых вкладках в Chromium, который будет считать количество слов и обновлять название вкладки. Это позволяет добиться аналогичного результата, как и в случае с расширением для Firefox "Gather from Tabs". Успехов в ваших усилиях и не забывайте тестировать расширение на разных сайтах для проверки его корректной работы.

Оцените материал
Добавить комментарий

Капча загружается...