Company logo
  • Empleos
  • Bootcamp
  • Acerca de nosotros
  • Para profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
    • Bootcamp
  • Para empresas
    • Inicio
    • Nuestro proceso
    • Planes
    • Pruebas
    • Nómina
    • Blog
    • Comercial
    • Calculadora

0

169
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"]
  }]
}
7 months ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos