หน้านี้อธิบายวิธีแสดงและปรับแต่งวิดเจ็ต reCAPTCHA v2 ในหน้าเว็บ
หากต้องการแสดงวิดเจ็ต ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
ดูการกําหนดค่าเพื่อดูวิธีปรับแต่งวิดเจ็ต ตัวอย่างเช่น คุณอาจต้องการระบุภาษาหรือธีมสำหรับวิดเจ็ต
โปรดดูที่การยืนยันคำตอบของผู้ใช้ เพื่อตรวจสอบว่าผู้ใช้แก้ไข CAPTCHA สำเร็จหรือไม่
แสดงผลวิดเจ็ต reCAPTCHA โดยอัตโนมัติ
วิธีที่ง่ายที่สุดในการแสดงผลวิดเจ็ต reCAPTCHA ในหน้าเว็บคือการรวมแหล่งข้อมูล JavaScript ที่จำเป็นและแท็ก g-recaptcha แท็ก g-recaptcha เป็นองค์ประกอบ DIV ที่มีชื่อคลาส g-recaptcha และคีย์เว็บไซต์ในแอตทริบิวต์ 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>
สคริปต์จะต้องโหลดโดยใช้โปรโตคอล HTTPS และสามารถรวมจาก ชี้ไปที่หน้าเว็บโดยไม่มีข้อจำกัด
แสดงผลวิดเจ็ต reCAPTCHA อย่างชัดแจ้ง
คุณเลื่อนการแสดงผลได้โดยระบุฟังก์ชัน Callback ของ onload และเพิ่มพารามิเตอร์ลงในทรัพยากร JavaScript
- ระบุฟังก์ชัน Callback ของ - onloadระบบจะเรียกฟังก์ชันนี้เมื่อ โหลดทรัพยากร Dependency ทั้งหมดแล้ว- <script type="text/javascript"> var onloadCallback = function() { alert("grecaptcha is ready!"); }; </script>
- แทรกทรัพยากร JavaScript โดยตั้งค่าพารามิเตอร์ - onloadเป็นชื่อของฟังก์ชัน Callback ของ onload และตั้งค่าพารามิเตอร์- renderเป็น- explicit- <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer> </script>- เมื่อเรียกใช้การเรียกกลับ คุณจะเรียกใช้เมธอด คุณต้องกำหนดฟังก์ชัน Callback ของ- grecaptcha.renderได้จาก JavaScript API
การกำหนดค่า
พารามิเตอร์ทรัพยากร JavaScript (api.js)
| พารามิเตอร์ | ค่า | คำอธิบาย | 
|---|---|---|
| onload | ไม่บังคับ ชื่อของฟังก์ชัน Callback ที่จะเริ่มทำงานเมื่อโหลดทรัพยากร Dependency ทั้งหมดแล้ว | |
| render | explicit onload | ไม่บังคับ แสดงผลวิดเจ็ตอย่างชัดแจ้งหรือไม่ ค่าเริ่มต้นคือ onload ซึ่งจะแสดงผลวิดเจ็ตในแท็ก g-recaptchaรายการแรกที่พบ | 
| hl | ดูรหัสภาษา | ไม่บังคับ บังคับให้วิดเจ็ตแสดงผลในบางภาษา ตรวจหาภาษาของผู้ใช้โดยอัตโนมัติหากไม่ได้ระบุ | 
แอตทริบิวต์แท็ก g-recaptcha และพารามิเตอร์ grecaptcha.render
| แอตทริบิวต์แท็ก g-recaptcha | พารามิเตอร์ grecaptcha.render | ค่า | ค่าเริ่มต้น | คำอธิบาย | 
|---|---|---|---|---|
| data-sitekey | sitekey | คีย์เว็บไซต์ของคุณ | ||
| data-theme | theme | dark light | light | ไม่บังคับ ธีมสีของวิดเจ็ต | 
| data-size | size | compact normal | normal | ไม่บังคับ ขนาดของวิดเจ็ต | 
| data-tabindex | tabindex | 0 | ไม่บังคับ แท็บอินเด็กซ์ของวิดเจ็ตและความท้าทาย หากองค์ประกอบอื่นๆ ในหน้าเว็บใช้ Tabindex ก็ควรตั้งค่าไว้เพื่อให้ผู้ใช้ไปยังส่วนต่างๆ ได้ง่ายขึ้น | |
| data-callback | callback | ไม่บังคับ ชื่อของฟังก์ชัน Callback ซึ่งจะทำงานเมื่อผู้ใช้ส่งการตอบกลับที่สำเร็จ ระบบจะส่งโทเค็น g-recaptcha-responseไปยังการเรียกกลับ | ||
| data-expired-callback | expired-callback | ไม่บังคับ ชื่อของฟังก์ชัน Callback จะทำงานเมื่อการตอบสนอง reCAPTCHA หมดอายุและผู้ใช้ต้องยืนยันอีกครั้ง | ||
| data-error-callback | error-callback | ไม่บังคับ ชื่อของฟังก์ชัน Callback จะทำงานเมื่อ reCAPTCHA พบข้อผิดพลาด (โดยปกติคือการเชื่อมต่อเครือข่าย) และจะดำเนินการต่อไม่ได้จนกว่าจะกลับมาเชื่อมต่ออีกครั้ง หากคุณระบุฟังก์ชันที่นี่ คุณต้องรับผิดชอบในการแจ้งให้ผู้ใช้ลองอีกครั้ง | 
JavaScript API
| วิธีการ | คำอธิบาย | 
|---|---|
| grecaptcha.render(คอนเทนเนอร์ พารามิเตอร์ | แสดงผลคอนเทนเนอร์เป็นวิดเจ็ต reCAPTCHA และแสดงผลรหัสของวิดเจ็ตที่สร้างขึ้นใหม่ container เอลิเมนต์ HTML สำหรับแสดงผลวิดเจ็ต reCAPTCHA ระบุรหัสของคอนเทนเนอร์ (สตริง) หรือตัวองค์ประกอบ DOM parameters ออบเจ็กต์ที่มีพารามิเตอร์เป็นคู่คีย์=ค่า เช่น {"sitekey": "your_site_key", "theme": "light"} ดูพารามิเตอร์ grecaptcha.render | 
| grecaptcha.reset( | รีเซ็ตวิดเจ็ต reCAPTCHA opt_widget_id รหัสวิดเจ็ตซึ่งไม่บังคับ จะใช้ค่าเริ่มต้นเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ | 
| grecaptcha.getResponse( | รับการตอบกลับสำหรับวิดเจ็ต reCAPTCHA opt_widget_id รหัสวิดเจ็ตซึ่งไม่บังคับ จะใช้ค่าเริ่มต้นเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ | 
ตัวอย่าง
การแสดงผลที่ชัดเจนหลังจาก Callback ที่โหลด
<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>
การแสดงผลที่ชัดเจนสำหรับวิดเจ็ตหลายรายการ
<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>
