Skip to content

โหมด programmatic

คุณสามารถใช้ new Cap({ ... }) ใน JavaScript ฝั่งไคลเอนต์เพื่อสร้างอินสแตนซ์ Cap ใหม่ แล้วใช้เมธอด solve() เพื่อแก้ challenge

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

console.log(solution.token);

คุณตั้ง event listener ได้ด้วย:

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

cap.addEventListener("progress", (event) => {
  console.log(`กำลังแก้... เสร็จแล้ว ${event.detail.progress}%`);
});

เบื้องหลังนั้น Cap จะสร้างอิลิเมนต์ cap-widget แบบซ่อนไว้ แล้วใช้มันแก้ challenge

เมธอดและอาร์กิวเมนต์ที่รองรับ

เมธอดที่รองรับมีดังนี้:

new Cap({ ... })

สร้างอินสแตนซ์ Cap ใหม่ ถ้าส่งอาร์กิวเมนต์ตัวที่สองเข้ามา Cap จะใช้อิลิเมนต์นั้นแทนการสร้างใหม่ในหน่วยความจำ

อาร์กิวเมนต์

json
{
  apiEndpoint: ..., // API endpoint เทียบเท่ากับแอตทริบิวต์ `data-cap-api-endpoint` ของวิดเจ็ต
  workers: navigator.hardwareConcurrency || 8 // จำนวน worker thread ที่จะใช้
}

cap.solve()

ขอและแก้ challenge

ผลลัพธ์: { token }

cap.token

คืนค่า token จากการแก้ครั้งล่าสุด

cap.reset()

รีเซ็ต cap.token

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

ดักฟังเหตุการณ์ของวิดเจ็ต Cap ดูเหตุการณ์ที่รองรับ

เผยแพร่ภายใต้สัญญาอนุญาต Apache 2.0