reCAPTCHA v2

In questa pagina viene spiegato come visualizzare e personalizzare il widget reCAPTCHA v2 sulla tua pagina web.

Per visualizzare il widget, puoi:

Per scoprire come personalizzare il widget, consulta Configurazioni. Ad esempio, potresti voler specificare la lingua o il tema del widget.

Fai riferimento a Verifica della risposta dell'utente per verificare se l'utente ha risolto correttamente il CAPTCHA.

Esegui automaticamente il rendering del widget reCAPTCHA

Il metodo più semplice per eseguire il rendering del widget reCAPTCHA sulla tua pagina è includere la risorsa JavaScript necessaria e un tag g-recaptcha. Il tag g-recaptcha è un elemento DIV con nome di classe g-recaptcha e la chiave di sito nella Attributo data-sitekey:

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

Lo script deve essere caricato tramite il protocollo HTTPS e può essere incluso da qualsiasi puntare alla pagina senza restrizioni.

Esegui il rendering in modo esplicito del widget reCAPTCHA

Il differimento del rendering può essere ottenuto specificando la funzione di callback onload e l'aggiunta di parametri alla risorsa JavaScript.

  1. Specifica la funzione di callback onload. Questa funzione viene chiamata quando sono state caricate tutte le dipendenze.

    <script type="text/javascript">
      var onloadCallback = function() {
        alert("grecaptcha is ready!");
      };
    </script>
    
  2. Inserisci la risorsa JavaScript, impostando il parametro onload sul nome della funzione di callback onload e del parametro render su explicit.

    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>
    

    Quando il callback viene eseguito, puoi chiamare il metodo grecaptcha.render dall'API JavaScript.

Configurazione

Parametri risorsa JavaScript (api.js)

Parametro Valore Descrizione
caricamento (Facoltativo) Il nome della funzione di callback da eseguire dopo il caricamento di tutte le dipendenze.
eseguire il rendering explicit
onload
(Facoltativo) Indica se eseguire il rendering del widget in modo esplicito. Il valore predefinito è onload, che mostrerà 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 tag g-recaptcha e parametri grecaptcha.render

Attributo tag g-recaptcha Parametro grecaptcha.render Valore Predefinito Descrizione
data-sitekey chiave sito La chiave del sito.
data-theme tema luce scura luce (Facoltativo) Il tema a colori del widget.
dimensione-dati dimensioni normale compatto normale (Facoltativo) Le dimensioni del widget.
data-tabindex indice tab 0 (Facoltativo) Il tabindex del widget e della sfida. Se altri elementi della pagina utilizzano tabindex, deve essere impostato per facilitare la navigazione dell'utente.
data-callback callback (Facoltativo) Il nome della tua funzione di callback, eseguita quando l'utente invia una risposta positiva. 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 callback di errore (Facoltativo) Il nome della funzione di callback, eseguita quando reCAPTCHA riscontra un errore (di solito la connettività di rete) e non può continuare fino a quando la connettività non viene ripristinata. Se specifichi una funzione qui, devi informare l'utente che deve riprovare.

API JavaScript

Metodo Descrizione
grecaptcha.render(
container,
Parametri
)
Visualizza il container 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.
parametri
Un oggetto che contiene parametri come coppie chiave=valore, ad esempio {"sitekey": "your_site_key", "theme": "light"}. Vedi i parametri grecaptcha.render.
grecaptcha.reset(
opt_widget_id
)
Reimposta il widget reCAPTCHA.
opt_widget_id
ID widget facoltativo; se non specificato, viene usato per impostazione predefinita il primo widget creato.
grecaptcha.getResponse(
opt_widget_id
)
Recupera la risposta per il widget reCAPTCHA.
opt_widget_id
ID widget facoltativo; se non specificato, viene usato per impostazione predefinita il primo widget creato.

Esempi

Rendering esplicito dopo un callback onload

<html>
  <head>
    <title>reCAPTCHA demo: Explicit render after an onload callback</title>
    <script type="text/javascript">
      var onloadCallback = function() {
        grecaptcha.render('html_element', {
          'sitekey' : 'your_site_key'
        });
      };
    </script>
  </head>
  <body>
    <form action="?" method="POST">
      <div id="html_element"></div>
      <br>
      <input type="submit" value="Submit">
    </form>
    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>
  </body>
</html>

Rendering esplicito per più widget

<html>
  <head>
    <title>reCAPTCHA demo: Explicit render for multiple widgets</title>
    <script type="text/javascript">
      var verifyCallback = function(response) {
        alert(response);
      };
      var widgetId1;
      var widgetId2;
      var onloadCallback = function() {
        // Renders the HTML element with id 'example1' as a reCAPTCHA widget.
        // The id of the reCAPTCHA widget is assigned to 'widgetId1'.
        widgetId1 = grecaptcha.render('example1', {
          'sitekey' : 'your_site_key',
          'theme' : 'light'
        });
        widgetId2 = grecaptcha.render(document.getElementById('example2'), {
          'sitekey' : 'your_site_key'
        });
        grecaptcha.render('example3', {
          'sitekey' : 'your_site_key',
          'callback' : verifyCallback,
          'theme' : 'dark'
        });
      };
    </script>
  </head>
  <body>
    <!-- The g-recaptcha-response string displays in an alert message upon submit. -->
    <form action="javascript:alert(grecaptcha.getResponse(widgetId1));">
      <div id="example1"></div>
      <br>
      <input type="submit" value="getResponse">
    </form>
    <br>
    <!-- Resets reCAPTCHA widgetId2 upon submit. -->
    <form action="javascript:grecaptcha.reset(widgetId2);">
      <div id="example2"></div>
      <br>
      <input type="submit" value="reset">
    </form>
    <br>
    <!-- POSTs back to the page's URL upon submit with a g-recaptcha-response POST parameter. -->
    <form action="?" method="POST">
      <div id="example3"></div>
      <br>
      <input type="submit" value="Submit">
    </form>
    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
    </script>
  </body>
</html>