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

Errores y diagnóstico

Errores JavaScript de WordPress que rompen botones y ventanas emergentes

¿No funcionan los botones o ventanas emergentes de WordPress? Revisa errores JavaScript, carga de scripts y eventos, y prepara una evaluación para repararlos.

Si los botones, pestañas o ventanas emergentes de WordPress dejan de funcionar, un error JavaScript es una posible causa, no un diagnóstico por sí solo. Distingue entre un elemento ausente, un botón tapado, un script que no se carga y un manejador que lanza una excepción. Un aviso de consola ajeno al control averiado no demuestra el origen del fallo.

Si el problema bloquea consultas, reservas o compras, solicita una evaluación de la interacción que falla. Envía la URL, la acción concreta y el último cambio anterior al problema.

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

Declara las dependencias que utiliza realmente tu script. Este ejemplo presupone que ui.js usa jQuery; si no lo necesita, no añadas esa dependencia solo para copiar el ejemplo.

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);
}

Es un fragmento ilustrativo: openDialog debe ser una función definida en tu implementación. 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.

Prepara evidencias para una reparación concreta

Compara la misma acción sin iniciar sesión y en móvil. Anota el primer error relevante, la URL del script y el resultado esperado. Por ejemplo, si una ventana se abre y se cierra inmediatamente, comprueba si hay dos manejadores antes de añadir un tercero. Es un ejemplo de diagnóstico, no una conclusión sobre tu web.

Comparte errores sin datos privados, nunca contraseñas ni exportaciones de sesiones del navegador. El proceso de reparación explica la evaluación y la aprobación. Pide una evaluación si no puedes aislar el fallo con seguridad.

Documentación de referencia

Consulta la documentación de la consola de Chrome DevTools, la referencia de eventos de MDN y las dependencias de scripts en WordPress para comprobar el mecanismo que investigas.

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↗