Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Administrador Medios Frontend

Un error JavaScript rompe botones, pestañas o ventanas emergentes

Diagnostica errores JavaScript de WordPress mediante la primera excepción, carga de recursos, dependencias, caché y eventos.

Una sola excepción no capturada puede detener la inicialización posterior y hacer que varios controles parezcan averiados. La primera línea de error y el archivo realmente cargado aportan más información que reinstalar todos los plugins relacionados.

Conserva la página, navegador y versiones de recursos antes de regenerar scripts.

Reproduce un único control

Anota URL, ancho, consentimiento, sesión, interacción exacta y resultado esperado. Repite en un navegador limpio sin extensiones.

Captura:
primera excepción de Consola
archivo, línea y pila
peticiones fallidas en Red
versión y caché del script
ID o clase del objetivo HTML
si el evento llega a ejecutarse

Oculta datos privados, cookies y tokens.

Empieza por la primera excepción

Recarga con Consola abierta e interactúa una vez. Los errores posteriores pueden ser simples consecuencias de una dependencia no definida.

Abre el archivo desde su URL cargada y confirma que contiene JavaScript, no una página HTML de error servida con un tipo incorrecto. Usa source maps en staging si existen, sin publicar código propietario contra la política del proyecto.

Comprueba dependencias y orden

Los scripts de WordPress deben declarar dependencias como jquery en lugar de asumir un orden global.

wp_enqueue_script(
    'site-ui',
    get_stylesheet_directory_uri() . '/assets/ui.js',
    array( 'jquery' ),
    '1.2.0',
    true
);

Evita copias duplicadas de jQuery. defer, módulos y carga en el pie pueden cambiar el orden; inspecciona los atributos reales de la página.

Inspecciona el objetivo en el DOM

Una actualización de tema o bloques puede renombrar clases o generar IDs duplicados. Confirma que el selector coincide y que el código admite varias instancias.

Para contenido insertado dinámicamente, usa delegación de eventos cuando corresponda. No registres manejadores repetidos en cada actualización AJAX. Comprueba a la vez clic, teclado y estado ARIA.

Aísla la optimización

Los plugins de minificación, combinación o retraso pueden alterar el orden o conservar un bundle antiguo. Desactiva una sola función en staging y compara.

Excluye únicamente el script o dependencia incompatibles que hayas demostrado, regenera recursos y versiona el lanzamiento. El consentimiento debe retrasar analítica opcional, no los controles esenciales.

Revisa CSP, CORS y contenido mixto

Content Security Policy, CORS o una mezcla de HTTP y HTTPS pueden bloquear bibliotecas y API. Lee el mensaje exacto del navegador.

Ajusta CSP de forma limitada para los orígenes, nonces o hashes necesarios. No añadas comodines ni unsafe-inline como reparación rápida. Prioriza dependencias locales mantenidas cuando sea viable.

Repara el comportamiento defensivo

Corrige el componente, la dependencia, el selector o la comprobación nula en la fuente:

const trigger = document.querySelector("[data-dialog-trigger]");
if (trigger) {
  trigger.addEventListener("click", openDialog);
}

La comprobación evita romper páginas sin ese componente, pero no corrige el HTML ausente donde el botón sí es obligatorio.

Contén los scripts de terceros

Chat, mapas, consentimiento y analítica pueden fallar sin inutilizar la interfaz principal. Carga integraciones opcionales de forma asíncrona y fuera de la ruta de inicialización crítica.

Añade timeouts y alternativas para API externas. No encadenes la preparación del menú o modal a una promesa de marketing. No ocultes globalmente todos los errores: registra una huella segura del fallo y su origen.

Instrumenta los eventos en staging

Usa los paneles de listeners, breakpoints e instrumentación temporal para saber qué manejador se ejecuta, llama a preventDefault() o detiene la propagación.

Retira el diagnóstico antes de publicar. Si dos plugins controlan el mismo disparador, define propiedad y namespaces. En contenido AJAX, inicializa una vez cada componente y limpia al retirarlo.

Verifica todos los estados

Prueba ratón, toque, teclado, varios controles, apertura, cierre, navegación atrás y contenido dinámico en navegadores representativos. Repite con la caché caliente.

Supervisa las huellas de errores del frontal tras desplegar. Que el botón esté visible no demuestra que su interacción funcione.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia