Package Exports
- vanilla-hcaptcha
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vanilla-hcaptcha) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
hCaptcha - Vanilla Web Component
0 dependencies. <1kb gzipped. Integrates well with Vue.JS, React, Angular, etc.
Install
yarn add vanilla-hcaptcha<script src="https://cdn.jsdelivr.net/npm/vanilla-hcaptcha"></script>Usage
Being a vanilla web component, it is relatively easy to integrate in mainstream web frameworks such as: React, Vue.js, Angular, Stencil.js, etc. See below some examples.
Vue.JS
Example: display invisible hCaptcha and render programmatically.
Import once in application (
main.js). Ignore the custom element.import "vanilla-hcaptcha"; Vue.config.ignoredElements = [ "h-captcha" ];
Add handling methods
methods: { onCaptchaLoaded(e) { console.log("Captcha is loaded"); e.target.render(); // Show captcha programmatically }, onCaptchaVerified(e) { console.log("Captcha is verified", { key: e.key }); } }
Integrate in your vue component
<template> ... <h-captcha site-key="10000000-ffff-ffff-ffff-000000000001" size="invisible" @loaded="onCaptchaLoaded" @verified="onCaptchaVerified"></h-captcha> ... </template>
React.JS
Example: display normal size hCaptcha with dark theme.
Import once in application (
index.js).import 'vanilla-hcaptcha';
Add event handler after mount
componentDidMount() { const signupCaptcha = document.getElementById('signupCaptcha'); signupCaptcha.addEventListener('verified', (e) => { console.log('verified event', { key: e.key }); }); }
Integrate in your html template
<h-captcha id="signupCaptcha" site-key="10000000-ffff-ffff-ffff-000000000001" size="normal" dark onVerified="onCaptchaVerified"></h-captcha>
Angular
Example: display default hCaptcha.
Import once in application (
main.ts).import 'vanilla-hcaptcha';
Add
CUSTOM_ELEMENTS_SCHEMAto@NgModule.schemasIntegrate in your html template
<h-captcha [attr.site-key]="siteKey" (verified)="onCaptchaVerified($event)"></h-captcha>
Vanilla.JS
Example: display normal size hCaptcha accessible by keyboard (see tabindex).
1. ```html
<h-captcha id="signupCaptcha"
site-key="10000000-ffff-ffff-ffff-000000000001"
size="normal"
tabindex="0"></h-captcha>
<script>
const signupCaptcha = document.getElementById('signupCaptcha');
signupCaptcha.addEventListener('verified', (e) => {
console.log('verified event', { key: e.key });
});
signupCaptcha.addEventListener('error', (e) => {
console.log('error event', { error: e.error });
});
</script>
```Docs
Attributes
| Attribute | Description |
|---|---|
site-key |
The site key generated in hCaptcha dashboard. |
size |
One of: normal, compact, invisible |
dark |
To use the dark theme |
tabindex |
Set the tabindex of the hCaptcha popup. |
Events
| Event | Data | Description |
|---|---|---|
loaded |
null |
Emitted when component is ready to show captcha. This is necessary if window.hcaptcha is not already in the dom. |
verified |
key - verification key to be checked on backend side |
Event emitted after captcha was successfully verified. |
expired |
null |
Emitted when a captcha was verified but it expired. |
error |
error |
Emitted when an error happened. |
Develop & Test
yarn buildyarn test