No puedo encontrar lo que está mal en mi código porque recibo el error "Error al ejecutar 'observar' en 'MutationObserver': el parámetro 1 no es del tipo 'Nodo'".
Necesito encontrar si el conteo de datos cambia, si lo hace, imprima ese valor en la consola.
Sin embargo, no logró una manera de cómo hacerlo.
EDITAR: parece que mi secuencia de comandos funciona, después del primer intento (obteniendo un error en la carga de la página, luego yendo a otra pestaña y volviendo, imprime el valor correcto).
primer plano.js:
var ember = document.getElementsByClassName("ember-view c-tab__list__item publicConversation"); var elementToWatch; for(item of ember){ if(item.getAttribute("data-test-id") === "public-conversation" && item.getAttribute("data-count") != 0) { console.log(item.getAttribute("data-count")); elementToWatch = item.getAttributeNode("data-count"); } } var config = {attributeFilter: ['data-update']}; var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.target.dataset.update == 'true') { console.log('Attribute value updated', mutation); } }); }); observer.observe(elementToWatch, config);fondo.js:
chrome.tabs.onUpdated.addListener(function(id, info, tab){ if (tab.status !== "complete"){ return; } if(tab.url.indexOf("tickets") != -1){ chrome.tabs.executeScript(tab.id, {"file": "foreground.js"}); console.log("injected"); } });manifiesto.json:
{ "manifest_version": 2, "name": "extension", "version": "1.69", "description": "Does things:)", "background": { "scripts": ["background.js"] }, "content_scripts": [ { "matches": ["https://exampleweb.com/tickets/*"], "js": ["foreground.js"] } ] }ejemplo HTML:
<li id="ember7026" class="ember-view c-tab__list__item publicConversation" data-test-id="public-conversation" data-count="0" aria-expanded="false" aria-selected="false"><span class="is_new_flag">NEW</span>Public </li>