Questa pagina spiega come attivare e personalizzare il reCAPTCHA invisibile sulla tua pagina web.
Per richiamare reCAPTCHA invisibile, puoi:
- Collegare automaticamente la sfida a un pulsante o
- Associare la verifica in modo programmatico a un pulsante o
- Eseguire l'invocazione della sfida in modo programmatico
Per scoprire come personalizzare il reCAPTCHA invisibile, consulta Configurazioni. Ad esempio, potresti voler specificare la lingua o la posizione del badge.
Consulta la sezione Verificare la risposta dell'utente per verificare se l'utente ha risolto correttamente il CAPTCHA.
Associare automaticamente la sfida a un pulsante
Il metodo più semplice per utilizzare il widget reCAPTCHA invisibile sulla tua pagina è includere la risorsa JavaScript necessaria e aggiungere alcuni attributi al pulsante HTML. Gli attributi necessari sono il nome di una classe "g-recaptcha
", la chiave di sito nell'attributo data-sitekey
e il nome di un callback JavaScript per gestire il completamento del captcha nell'attributo data-callback
.
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script>
function onSubmit(token) {
document.getElementById("demo-form").submit();
}
</script>
</head>
<body>
<form id="demo-form" action="?" method="POST">
<button class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit">Submit</button>
<br/>
</form>
</body>
</html>
Lo script deve essere caricato utilizzando il protocollo HTTPS e può essere incluso da qualsiasi punto della pagina senza limitazioni.
Associa la verifica a un pulsante o richiamala in modo programmatico.
Puoi posticipare il binding specificando la funzione di callback onload e aggiungendo parametri alla risorsa JavaScript. Funziona come la normale verifica reCAPTCHA.
Richiama la sfida in modo programmatico.
L'invocazione della verifica reCAPTCHA tramite programmazione può essere eseguita eseguendo il rendering della verifica in un elemento div con un attributo data-size="invisible"
e chiamando programmatically execute.
Crea un div con
data-size="invisible"
.<div class="g-recaptcha" data-sitekey="_your_site_key_" data-callback="onSubmit" data-size="invisible"> </div>
Chiama grecaptcha.execute da un metodo JavaScript.
grecaptcha.execute();
Quando il callback viene eseguito, puoi chiamare il metodo
grecaptcha.render
dall'API JavaScript.
Configurazione
Parametri risorsa JavaScript (api.js)
Parametro | Valore | Descrizione |
---|---|---|
onload |
(Facoltativo) Il nome della funzione di callback da eseguire dopo il caricamento di tutte le dipendenze. | |
render |
explicit onload |
(Facoltativo) Indica se eseguire il rendering del widget in modo esplicito. Il valore predefinito è onload, che visualizzerà il widget nel primo tag g-recaptcha trovato. |
hl |
Visualizza i codici lingua | (Facoltativo) Forza il rendering del widget in una lingua specifica. Rileva automaticamente la lingua dell'utente, se non specificata. |
Attributi del tag g-recaptcha e parametri grecaptcha.render
Attributo tag g-recaptcha | Parametro grecaptcha.render | Valore | Predefinito | Descrizione |
---|---|---|---|---|
data-sitekey |
sitekey | La chiave del sito. | ||
data-badge |
badge | bottomright bottomleft in linea | bottomright | (Facoltativo) Riposiziona il badge reCAPTCHA. "inline" consente di posizionarlo con CSS. |
data-size |
dimensioni | invisibile | (Facoltativo) Utilizzato per creare un widget invisibile associato a un elemento div ed eseguito in modo programmatico. | |
data-tabindex |
tabindex | 0 | (Facoltativo) Il tabindex della sfida. Se altri elementi della pagina utilizzano tabindex, questo deve essere impostato per semplificare la navigazione dell'utente. | |
data-callback |
callback | (Facoltativo) Il nome della funzione di callback, eseguita quando l'utente invia una risposta corretta. Il token g-recaptcha-response viene passato al callback. |
||
data-expired-callback |
expired-callback | (Facoltativo) Il nome della funzione di callback, eseguita quando la risposta reCAPTCHA scade e l'utente deve verificare di nuovo. | ||
data-error-callback |
error-callback | (Facoltativo) Il nome della funzione di callback, eseguita quando reCAPTCHA rileva un errore (di solito di connettività di rete) e non può continuare finché la connettività non viene ripristinata. Se specifichi una funzione qui, è tua responsabilità informare l'utente che deve riprovare. | ||
isolato | falso | (Facoltativo) Per consentire ai proprietari di plug-in di non interferire con le installazioni reCAPTCHA esistenti su una pagina. Se impostato su true, questa istanza reCAPTCHA farà parte di uno spazio ID separato. |
API JavaScript
Metodo | Descrizione |
---|---|
grecaptcha.render () container,
parametri,
eredita
)
|
Esegue il rendering del contenitore come widget reCAPTCHA e restituisce l'ID del widget appena creato. container L'elemento HTML per il rendering del widget reCAPTCHA. Specifica l'ID del container (stringa) o l'elemento DOM stesso. parameters Un oggetto contenente i parametri sotto forma di coppie chiave=valore, ad esempio {"sitekey": "your_site_key", "theme": "light"}. Vedi i parametri grecaptcha.render. inherit Utilizza gli attributi data-* esistenti nell'elemento se il parametro corrispondente non è specificato. I parametri hanno la precedenza sugli attributi. |
grecaptcha.execute(
|
Richiamare in modo programmatico il controllo reCAPTCHA. Da utilizzare se reCAPTCHA invisibile si trova in un div
anziché in un pulsante.opt_widget_id ID widget facoltativo, se non specificato viene utilizzato il primo widget creato. |
grecaptcha.reset(
|
Reimposta il widget reCAPTCHA.opt_widget_id ID widget facoltativo, se non specificato viene utilizzato il primo widget creato. |
grecaptcha.getResponse(
|
Recupera la risposta per il widget reCAPTCHA.opt_widget_id ID widget facoltativo, se non specificato viene utilizzato il primo widget creato. |
Esempi
Rendering esplicito dopo un callback onload
<html>
<head>
<title>reCAPTCHA demo: Explicit render after an onload callback</title>
<script>
var onSubmit = function(token) {
console.log('success!');
};
var onloadCallback = function() {
grecaptcha.render('submit', {
'sitekey' : 'your_site_key',
'callback' : onSubmit
});
};
</script>
</head>
<body>
<form action="?" method="POST">
<input id="submit" type="submit" value="Submit">
</form>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
</body>
</html>
Richiamo della verifica reCAPTCHA invisibile dopo la convalida lato client.
<html>
<head>
<script>
function onSubmit(token) {
alert('thanks ' + document.getElementById('field').value);
}
function validate(event) {
event.preventDefault();
if (!document.getElementById('field').value) {
alert("You must add text to the required field");
} else {
grecaptcha.execute();
}
}
function onload() {
var element = document.getElementById('submit');
element.onclick = validate;
}
</script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form>
Name: (required) <input id="field" name="field">
<div id="recaptcha" class="g-recaptcha"
data-sitekey="_your_site_key_"
data-callback="onSubmit"
data-size="invisible"></div>
<button id="submit">submit</button>
</form>
<script>onload();</script>
</body>
</html>