Estoy tratando de hacer una extensión de Chrome que te permita agregar un texto resaltado en el DOM de la extensión usando el menú contextual. Este fragmento de código funciona bien, pero solo cuando tengo abiertas las herramientas de desarrollo para inspeccionar la extensión. De lo contrario, el comando del menú contextual no hace nada. Cualquier ayuda será apreciada, gracias.
Código JavaScript:
if (typeof (document) !== "undefined"){ let wordList = [] const ulEl = document.getElementById("ul-el") const CONTEXT_MENU_ID = "MY_CONTEXT_MENU" const localStorageStuff = JSON.parse(localStorage.getItem("text")) if (localStorageStuff){ wordList = localStorageStuff console.log(wordList) render(wordList) } function render(words) { let renderWords = "" for (let i=0; i<words.length; i++) { renderWords += ` <li> <a target='blank_' href='http://www.google.com/search?q=${words[i]}'> ${words[i]} </a> </li> ` } ulEl.innerHTML = renderWords } function getword(info) { if (info.menuItemId !== CONTEXT_MENU_ID) { return; } console.log("Word " + info.selectionText + " was clicked.") wordList.push(info.selectionText) console.log(wordList) localStorage.setItem("text", JSON.stringify(wordList)) render(wordList) } chrome.contextMenus.removeAll(function() {chrome.contextMenus.create({ title: "Add log: %s", contexts:["selection"], id: CONTEXT_MENU_ID })}) chrome.contextMenus.onClicked.addListener(getword) }manifiesto.json
{ "name": "Memos", "version": "1.0", "manifest_version": 3, "action": { "default_popup": "index.html" }, "permissions": [ "contextMenus", "tabs", "storage" ], "background": { "service_worker": "index.js" } }