Halaman ini menjelaskan cara mengaktifkan dan menyesuaikan reCAPTCHA tidak terlihat di halaman web Anda.
Untuk memanggil reCAPTCHA tidak terlihat, Anda dapat:
- Mengikat tantangan ke tombol secara otomatis atau
- Mengikat tantangan secara terprogram ke tombol atau
- Memanggil tantangan secara terprogram
Lihat Konfigurasi untuk mempelajari cara menyesuaikan reCAPTCHA tidak terlihat. Misalnya, Anda mungkin ingin menentukan bahasa atau lokasi badge.
Lihat Memverifikasi respons pengguna untuk memeriksa apakah pengguna berhasil memecahkan CAPTCHA.
Mengikat tantangan ke tombol secara otomatis
Metode termudah untuk menggunakan widget reCAPTCHA tidak terlihat di halaman Anda adalah dengan menyertakan resource JavaScript yang diperlukan dan menambahkan beberapa atribut ke tombol html Anda. Atribut yang diperlukan adalah nama class 'g-recaptcha
', kunci situs Anda di atribut data-sitekey
, dan nama callback JavaScript untuk menangani penyelesaian captcha di atribut 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>
Skrip harus dimuat menggunakan protokol HTTPS dan dapat disertakan dari titik mana pun di halaman tanpa batasan.
Secara terprogram, tautkan tantangan ke tombol atau panggil tantangan.
Menunda binding dapat dilakukan dengan menentukan fungsi callback pemuatan dan menambahkan parameter ke resource JavaScript. Cara kerjanya sama dengan tantangan reCAPTCHA normal.
Panggil tantangan secara terprogram.
Memanggil verifikasi reCAPTCHA secara terprogram dapat dilakukan dengan merender tantangan dalam div dengan atribut data-size="invisible"
dan memanggil execute secara terprogram.
Buat div dengan
data-size="invisible"
.<div class="g-recaptcha" data-sitekey="_your_site_key_" data-callback="onSubmit" data-size="invisible"> </div>
Panggil grecaptcha.execute dari metode JavaScript.
grecaptcha.execute();
Saat callback dieksekusi, Anda dapat memanggil metode
grecaptcha.render
dari JavaScript API.
Konfigurasi
Parameter resource JavaScript (api.js)
Parameter | Nilai | Deskripsi |
---|---|---|
onload |
Opsional. Nama fungsi callback yang akan dieksekusi setelah semua dependensi dimuat. | |
render |
explicit onload |
Opsional. Apakah akan merender widget secara eksplisit. Defaultnya adalah onload, yang akan merender widget di tag g-recaptcha pertama yang ditemukannya. |
hl |
Lihat kode bahasa | Opsional. Memaksa widget untuk merender dalam bahasa tertentu. Mendeteksi otomatis bahasa pengguna jika tidak ditentukan. |
atribut tag g-recaptcha dan parameter grecaptcha.render
Atribut tag g-recaptcha | parameter grecaptcha.render | Nilai | Default | Deskripsi |
---|---|---|---|---|
data-sitekey |
kunci situs | Sitekey Anda. | ||
data-badge |
badge | inline bottomright bottomleft | kanan bawah | Opsional. Posisikan ulang badge reCAPTCHA. 'inline' memungkinkan Anda memosisikan dengan CSS. |
data-size |
ukuran | tidak terlihat | Opsional. Digunakan untuk membuat widget tidak terlihat yang terikat ke div dan dieksekusi secara terprogram. | |
data-tabindex |
tabindex | 0 | Opsional. Tabindex tantangan. Jika elemen lain di halaman Anda menggunakan tabindex, elemen tersebut harus disetel untuk mempermudah navigasi pengguna. | |
data-callback |
callback | Opsional. Nama fungsi callback Anda, yang dijalankan saat pengguna mengirimkan respons yang berhasil. Token g-recaptcha-response diteruskan ke callback Anda. |
||
data-expired-callback |
expired-callback | Opsional. Nama fungsi callback Anda, yang dieksekusi ketika respons reCAPTCHA tidak berlaku lagi dan pengguna harus memverifikasi ulang. | ||
data-error-callback |
callback-error | Opsional. Nama fungsi callback Anda, yang dieksekusi ketika reCAPTCHA mengalami error (biasanya konektivitas jaringan) dan tidak dapat dilanjutkan hingga konektivitas dipulihkan. Jika menentukan fungsi di sini, Anda bertanggung jawab untuk memberi tahu pengguna bahwa mereka harus mencoba lagi. | ||
terisolasi | salah | Opsional. Agar pemilik plugin tidak mengganggu penginstalan reCAPTCHA yang ada di halaman. Jika benar, instance reCAPTCHA ini akan menjadi bagian dari ruang ID terpisah. |
JavaScript API
Metode | Deskripsi |
---|---|
grecaptcha.render (container,
parameter,
seperti sebelumnya
)
|
Merender penampung sebagai widget reCAPTCHA dan menampilkan ID widget yang baru dibuat. container Elemen HTML untuk merender widget reCAPTCHA. Tentukan ID penampung (string) atau elemen DOM itu sendiri. parameter Objek yang berisi parameter sebagai key=value pair, misalnya, {"sitekey": "your_site_key", "theme": "light"}. Lihat parameter grecaptcha.render. warisi Menggunakan atribut data-* yang sudah ada pada elemen jika parameter yang sesuai tidak ditentukan. Parameter akan lebih diprioritaskan daripada atribut. |
grecaptcha.execute(
|
Panggil pemeriksaan reCAPTCHA secara terprogram. Digunakan jika reCAPTCHA tidak terlihat ada di div
alih-alih tombol.opt_widget_id ID widget opsional, ditetapkan secara default ke widget pertama yang dibuat jika tidak ditentukan. |
grecaptcha.reset(
|
Mereset widget reCAPTCHA.opt_widget_id ID widget opsional, ditetapkan secara default ke widget pertama yang dibuat jika tidak ditentukan. |
grecaptcha.getResponse(
|
Mendapatkan respons untuk widget reCAPTCHA.opt_widget_id ID widget opsional, ditetapkan secara default ke widget pertama yang dibuat jika tidak ditentukan. |
Contoh
Rendering eksplisit setelah 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>
Memanggil tantangan reCAPTCHA tidak terlihat setelah validasi sisi klien.
<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>