Widget
Todos los atributos, los tres modos y la API JavaScript para formularios cargados después.
En esta página
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 | sí | Clave pública del sitio (cc_pub_…). |
| data-service-url | sí | 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.