Skip to content

Programmatischer Modus

Du kannst new Cap({ ... }) in deinem clientseitigen JavaScript verwenden, um eine neue Cap-Instanz zu erzeugen, und die Methode solve() aufrufen, um die Challenge zu lösen.

js
const cap = new Cap({
  apiEndpoint: "https://<your-instance>/<site-key>/",
  // oder: apiEndpoint: "/api/",
});
const solution = await cap.solve();

console.log(solution.token);

Du kannst auch Event-Listener einrichten:

js
const cap = new Cap({
  apiEndpoint: "https://<your-instance>/<site-key>/",
  // oder: apiEndpoint: "/api/",
});

cap.addEventListener("progress", (event) => {
  console.log(`Wird gelöst... ${event.detail.progress}% fertig`);
});

Im Hintergrund erzeugt Cap ein verstecktes cap-widget-Element und löst die Challenge damit.

Unterstützte Methoden und Argumente

Die folgenden Methoden werden unterstützt:

new Cap({ ... })

Erzeugt eine neue Cap-Instanz. Wird ein zweites Argument übergeben, verwendet Cap dieses Element, statt ein neues im Speicher anzulegen.

Argumente

json
{
  apiEndpoint: ..., // API-Endpunkt, analog zum Widget-Attribut `data-cap-api-endpoint`
  workers: navigator.hardwareConcurrency || 8 // Anzahl der zu nutzenden Worker-Threads
}

cap.solve()

Fordert eine Challenge an und löst sie.

Ausgabe: { token }

cap.token

Gibt das Token des letzten Lösungsvorgangs zurück.

cap.reset()

Setzt cap.token zurück.

cap.addEventListener(..., function () { ... })

Lauscht auf ein Event des Cap-Widgets. Siehe unterstützte Events.