Widget

Todos los atributos, los tres modos y la API JavaScript para formularios cargados después.

Opciones del widget

El widget se configura mediante atributos data-. Van en el contenedor con data-captchacore-widget y algunos además en el formulario. Cada valor aquí sustituye al predeterminado que fijó para el sitio en el panel de administración.

Atributo Valores Estándar Descripción
data-theme auto | light | dark auto Esquema de color. auto sigue la configuración del sistema del visitante.
data-color Color hexadecimal #34d399 Color de acento para la casilla y el borde
data-label Texto según el idioma Etiqueta junto a la casilla
data-brand Texto o vacío CaptchaCore Marca a la derecha, vacío = oculto
data-size normal | compact normal normal mide 360 px de ancho, compact 300 px
data-lang de en fr es it nl pl pt tr ja zh ko ar ru idioma de la página Idioma de los textos del widget. Sin valor cuenta lang en el formulario y, en su defecto, el del elemento <html>.
data-start auto | focus | none auto Cuándo empieza la comprobación: de inmediato, al primer foco en el formulario o solo al hacer clic.
data-mode interactive | visible | invisible interactive Sustituye el modo fijado en la administración para este formulario concreto.
data-form-type login register contact comment checkout password_reset newsletter custom Determina qué política de formulario se aplica. Va en el formulario o en el contenedor.

Atributos en la etiqueta script

Estos valores van en el propio elemento <script> y se aplican a todos los widgets de la página.

Atributo Obligatorio Descripción
data-site-key Clave pública del sitio (cc_pub_…).
data-service-url https://api.captchacore.eu
data-worker-url no Ruta propia al worker de prueba de trabajo, solo necesaria con un alojamiento distinto.
data-memory-hard-worker-url no Igual que arriba, para el worker de Argon2.

Modos del widget

El modo se establece mediante data-captchacore="..." en el <form>.

interactive Empfohlen

Widget immer sichtbar. PoW löst automatisch. Checkbox setzt sich selbst wenn genug menschliche Interaktion erkannt wird (3+ Zeichen getippt, Mausbewegung, 2+ Sekunden). Kein Klick nötig für echte User. Fallback: manueller Klick.

visible

Widget sichtbar. User muss die Checkbox klicken um die Verifikation zu starten. Ähnlich wie reCAPTCHA v2.

invisible

Kein sichtbares UI. PoW löst komplett im Hintergrund. Token wird automatisch beim Submit eingefügt. Ideal wenn kein visueller Schutz gewünscht ist.

API JavaScript del widget

El script crea el objeto global CaptchaCoreV2. En páginas estáticas no necesita nada de esto: el widget se vincula solo a todos los formularios adecuados al cargar. La API resulta relevante en cuanto los formularios se cargan por JavaScript, es decir, en sistemas de tienda, aplicaciones de una sola página y diálogos modales.

Método Finalidad
CaptchaCoreV2.init(config) Inicialización manual cuando el script se incluyó sin atributos data. Espera al menos siteKey y serviceUrl.
CaptchaCoreV2.attach() Vuelve a buscar formularios y vincula los nuevos. Llámelo tras cada sustitución del DOM.
CaptchaCoreV2.destroy() Desvincula todos los widgets, detiene el observador y limpia. Útil antes de un cambio de página en una SPA.
CaptchaCoreV2.getWidgets() Devuelve las instancias de widget vinculadas actualmente.
CaptchaCoreV2.getLanguages() Lista de los 14 códigos de idioma admitidos.
CaptchaCoreV2.on(event, fn) Suscribirse a un evento.
CaptchaCoreV2.off(event, fn) Cancelar la suscripción.

Eventos

CaptchaCoreV2.on('ready', function (data) {
  // Widget ist gebunden und einsatzbereit
});

CaptchaCoreV2.on('error', function (err) {
  // Netzwerkfehler, abgelaufener Nonce, ungültiger Schlüssel
  console.warn('CaptchaCore:', err);
});

Formularios cargados después

El widget observa el contenido de la página y detecta por sí mismo los nuevos formularios con data-captchacore. Eso cubre la mayoría de los casos. Sin embargo, si un formulario se sustituye y se envía de inmediato, el observador puede llegar tarde: en ese caso llame explícitamente a attach() tras insertarlo.

// Beispiel: Formular per fetch nachgeladen
const html = await (await fetch(url)).text();
container.innerHTML = html;
CaptchaCoreV2.attach();   // bindet das neue Formular an

Para sistemas de tienda y foros

Sistemas como Shopware, WooCommerce o phpBB sustituyen con frecuencia el registro, los formularios de dirección y los campos de comentario mediante AJAX. Enganche attach() al evento correspondiente del sistema, una vez que el nuevo contenido esté en el DOM. Una segunda llamada no hace daño: los formularios ya vinculados se omiten.