Estoy desarrollando una extensión de Chrome (no tengo mucha experiencia con ella) y tengo el siguiente código:
window.onload = function () { validateCNPJ(); }; function validateCNPJ() { document.querySelector('div[data-field-name="CNPJ"] > input').addEventListener('keydown', (bla) => { let ble = bla.target.value; console.log(ble.length) if (ble.length > 17) { bla.preventDefault() bla.stopPropagation() return } ble = ble.replace(/\D/g, "") ble = ble.replace(/^(\d{2})(\d)/, "$1.$2") ble = ble.replace(/^(\d{2}).(\d{3})(\d)/, "$1.$2.$3") ble = ble.replace(/.(\d{3})(\d)/, ".$1/$2") ble = ble.replace(/(\d{4})(\d)/, "$1-$2") bla.target.value = ble; }) }Agregué window.load para que cuando se cargue la página, se active la función validateCNPJ. Esa función valida un campo específico en un formulario en tiempo real.
El problema es que cuando subo la extensión me muestra un mensaje de error que dice:
Uncaught ReferenceError: window is not definedProbé el código dentro de la función validarCPNJ en la consola del navegador y funcionó normalmente.
El archivo de manifiesto es así:
{ "name": "CRM Validation Extension", "description": "Extension that validate fields of a opportunity", "version": "0.1", "manifest_version": 3, "background": { "service_worker": "background.js" } }¿Qué puedo hacer para solucionar este problema?
¡Gracias!
Logro solucionar el problema. Anteriormente, mi manifest.json era así:
{ "name": "CRM Validation Extension", "description": "Extension that validate fields of a opportunity", "version": "0.1", "manifest_version": 3, "background": { "service_worker": "background.js" } }Cambié el objeto de fondo y lo reemplacé con lo siguiente:
"content_scripts":[ { "matches": [ "<all_urls>" ], "js": ["background.js"] } ]Esto solucionó el problema que estaba teniendo.