• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

335
Vistas
Chrome Extension Content-Script as Listener & Popup as Sender, But Gives Receiving End Does Not Exist

Answer Found
This extension is for google meet. What I have written in manifest.json is wrong, line "matches": ["*://*.meet.google.com/*"], should be "matches": ["*://meet.google.com/*"],

Original Question
I have this chrome extension, I want to let my contentScript.js to search for an element (tag) in a webpage when I press a button in popup.html. I set the sending message part in popup.js and the sending seems to work fine. But when I tried to receive it on the contentScript.js, console.log gives me Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.

May someone please help me, any suggestions are welcome.

Code snippets:
popup.js

retrieveTabId();
function retrieveTabId() {
    chrome.tabs.query({currentWindow: true, active: true}, function (tabs) {
        var activeTab = tabs[0];
        console.log("tabID", activeTab.id);
        tabId = activeTab.id;
    });
}
document.getElementById("btn").addEventListener('click', function (){
    chrome.tabs.sendMessage(tabId, {type: "listener"}, function(response) {
        console.log((response.success));
    });
    console.log("tabID", tabId);
})

content-script.js

chrome.runtime.onMessage.addListener(
    function (request, sender, sendResponse) {
        if (request.type == 'listener') {
            try {
                let textarea = document.getElementsByTagName('textarea');
                if (textarea.length == 0) {
                    sendResponse({success: false});
                }
                else {
                    console.log('find node -- textarea' + textarea);
                    sendResponse({success: true});
                }
            }
            catch (e){
                console.log(e);
                sendResponse({success: false});
            }
        }
    }
);

manifest.json

{
  "name": "name",
  "description": "Build an Extension!",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["storage", "activeTab", "scripting", "downloads", "notifications", "<all_urls>", "tabs"],
  "action": {
    "default_popup": "popup.html"
  },
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [{
    "matches": ["*://*.meet.google.com/*"],
    "js": ["contentScript.js"]
  }]
}
about 3 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda