Estoy haciendo una extensión de Chrome simple y me encontré con este error. Intenté buscar y lo más que encontré es que probablemente me encuentre con un error con los parámetros de chrome.tabs.sendMessage. Probé console.log(tab[0].id) y, de hecho, es un número entero. Los documentos dicen que el parámetro del mensaje puede ser una cadena y los otros dos parámetros son opcionales y no necesarios en este contexto.
Uncaught (in promise) TypeError: Error in invocation of tabs.sendMessage(integer tabId, any message, optional object options, optional function callback): No matching signature. at background.js:18:21Aquí está mi código:
chrome.runtime.onInstalled.addListener(() => { chrome.contextMenus.create({ "title": 'Help With PIM', "id": 'pimhelper', "contexts": ['all'], });});
chrome.contextMenus.onClicked.addListener(async (info) => { if (info.menuItemId === "pimhelper") {
let queryOptions = { active: true, currentWindow: true }; let tab = await chrome.tabs.query(queryOptions); chrome.tabs.sendMessage((tab[0].id, '"message"')) }});
Posibles ideas:
Puede haber algún problema con el parámetro del mensaje y leí algo sobre la serialización de datos en los documentos. Sin embargo, no estoy seguro de cómo usar los métodos JSON parse o stringify para resolver esto.
Me disculpo si esto es un error de noob. Soy completamente nuevo en la creación de extensiones de Chrome.