Плагины, как из content_scripts и action JS общаться между собой?

Добрый день, начал изучать плагины. Manfisest v3:
{
"manifest_version": 3,
"name": "CRM",
"description": "Отправить на example.com данные",
"version": "1.0.0",
"icons": {"128": "icon_128.png"},
"content_scripts":[
{
"matches":["https://habr.com/ru/*"],
"css":["style.css"],
"js":["script.js"]
}
],
"action": {
"default_popup": "popup.html"
},
"permissions": ["activeTab"]
}

При открытии habr загружается script.js, парсит html и получаю данные. Также есть action popup.html в котором есть его popup.js. Хотелось бы script.js и popup.js связать, от script.js хочу получать данные на popup.js.
Подскажите в какую сторону копать, ссылки. Просто навыков моего гугления не хватает, не понимаю что гуглить. (localStorage не подходит, у странички плагина и вкладки разные)

Дополнительно:

Общение обычно происходит через сервис воркер расширения. Из попап шлете сообщение в воркер, а дальше он пересылает в нужную вкладку. Хотя можно сообщение сразу с попапа в нужную вкладку запульнуть, в попап метод tabs доступен.

https://chrome-ext.blogspot.com/2014/02/blog-post_...

  • Большое спасибо!

 

Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

 

    • Плагины, как из content_scripts и action JS общаться между собой?Есть ответ
    • 09.04.2024
    Ответить

    Для того чтобы плагины (extensions) могли общаться между собой в браузере, например, между content_scripts и action JS, можно использовать следующие методы:

    1. Использование сообщений (Messages): Вы можете использовать API браузера, такой как chrome.runtime.sendMessage(), чтобы отправлять сообщения между различными частями вашего плагина. Например, вы можете отправить сообщение из content_scripts к action JS и наоборот.

    php

    2. Использование событий (Events): Вы также можете использовать события для обмена информацией между различными частями вашего плагина. Например, вы можете создать событие в content_scripts и прослушивать его в action JS.

    php

    3. Использование хранилища (Storage): Вы можете использовать хранилище браузера, такое как chrome.storage, чтобы сохранить данные из одной части плагина и получить их в другой части.

    php

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

    • Плагины, как из content_scripts и action JS общаться между собой?Есть ответ
    • 07.04.2024
    Ответить

    Для общения между content_scripts и action JS в расширениях для браузеров (например, в Chrome или Firefox) можно использовать различные способы. Content_scripts - это скрипты, которые выполняются на странице, к которой применено расширение, а action JS - это скрипты, которые выполняются в background-процессе расширения.

    Один из способов общения между ними - использование сообщений. Например, content_script может отправлять сообщения через chrome.runtime.sendMessage(), а action JS может слушать эти сообщения через chrome.runtime.onMessage.addListener(). Таким образом, вы можете передавать данные и команды между content_scripts и action JS.

    Пример использования сообщений для общения между content_scripts и action JS:

    content_script.js:
    javascript
    chrome.runtime.sendMessage({message: "Hello from content script"}, function(response) {
    console.log("Response from action JS: " + response.message);
    });

    action.js:
    javascript
    chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    console.log("Message from content script: " + message.message);

    sendResponse({message: "Hello from action JS"});
    });

    Еще один способ общения - использование хранилища расширения (chrome.storage). Content_scripts могут записывать данные в хранилище, а action JS может считывать их. Это удобно для передачи больших объемов данных или для хранения состояния между различными частями расширения.

    Пример использования хранилища для общения между content_scripts и action JS:

    content_script.js:
    javascript
    chrome.storage.local.set({key: "value"}, function() {
    console.log("Data saved in storage");
    });

    action.js:
    javascript
    chrome.storage.local.get("key", function(data) {
    console.log("Data from content script: " + data.key);
    });

    Также можно использовать события для общения между content_scripts и action JS. Content_scripts могут генерировать события с помощью document.dispatchEvent(), а action JS может слушать эти события с помощью document.addEventListener(). Этот способ подходит для передачи информации о событиях на странице.

    Пример использования событий для общения между content_scripts и action JS:

    content_script.js:
    javascript
    var event = new CustomEvent("customEvent", {detail: "Data from content script"});
    document.dispatchEvent(event);

    action.js:
    javascript
    document.addEventListener("customEvent", function(event) {
    console.log("Data from content script: " + event.detail);
    });

    Итак, существует несколько способов общения между content_scripts и action JS в расширениях для браузеров: использование сообщений, хранилища расширения и событий. Выбор конкретного способа зависит от задачи, которую необходимо решить, и от удобства его реализации. Надеюсь, что данная информация поможет вам успешно реализовать общение между частями вашего расширения!

Оставить комментарий