reCAPTCHA ที่ไม่แสดง

หน้านี้จะอธิบายวิธีเปิดใช้และปรับแต่ง reCAPTCHA ที่ไม่แสดงในหน้าเว็บ

หากต้องการเรียกใช้ reCAPTCHA ที่ไม่แสดง ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้

ดูการกำหนดค่าเพื่อดูวิธีปรับแต่ง reCAPTCHA ที่ไม่แสดง เช่น คุณอาจต้องการระบุภาษาหรือตำแหน่งของป้าย

โปรดดูที่การยืนยันคำตอบของผู้ใช้ เพื่อตรวจสอบว่าผู้ใช้แก้ไข CAPTCHA สำเร็จหรือไม่

เชื่อมโยงภารกิจกับปุ่มโดยอัตโนมัติ

วิธีที่ง่ายที่สุดในการใช้วิดเจ็ต reCAPTCHA ที่ไม่แสดงในหน้าเว็บคือการรวมทรัพยากร JavaScript ที่จำเป็นและเพิ่มแอตทริบิวต์ 2-3 รายการในปุ่ม HTML แอตทริบิวต์ที่จำเป็นคือชื่อคลาส "g-recaptcha" คีย์ของเว็บไซต์ในแอตทริบิวต์ data-sitekey และชื่อของ Callback ที่เป็น JavaScript ในการจัดการการเติม CAPTCHA ในแอตทริบิวต์ 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>

ต้องโหลดสคริปต์โดยใช้โปรโตคอล HTTPS และสามารถรวมสคริปต์จากจุดใดก็ได้บนหน้าเว็บโดยไม่มีข้อจำกัด

เชื่อมโยงชาเลนจ์กับปุ่มหรือเรียกใช้ชาเลนจ์แบบเป็นโปรแกรม

คุณสามารถเลื่อนการเชื่อมโยงได้โดยการระบุฟังก์ชัน Callback onload และเพิ่มพารามิเตอร์ลงในทรัพยากร JavaScript ซึ่งทำงานเหมือนกับการทดสอบ reCAPTCHA ปกติ

เรียกใช้ชาเลนจ์แบบเป็นโปรแกรม

การเรียกใช้การยืนยัน reCAPTCHA แบบเป็นโปรแกรมสามารถทำได้โดยการแสดงภาพการทดสอบใน div ที่มีแอตทริบิวต์ data-size="invisible" และเรียกใช้การเรียกใช้แบบเป็นโปรแกรม

  1. สร้าง div ด้วย data-size="invisible"

    <div class="g-recaptcha"
          data-sitekey="_your_site_key_"
          data-callback="onSubmit"
          data-size="invisible">
    </div>
    
  2. เรียก grecaptcha.exeเสร็จสิ้น จากเมธอด JavaScript

    grecaptcha.execute();
    

    เมื่อมีการเรียกใช้ Callback คุณสามารถเรียกใช้เมธอด grecaptcha.render จาก JavaScript API

การกำหนดค่า

พารามิเตอร์ทรัพยากร JavaScript (api.js)

พารามิเตอร์ ค่า คำอธิบาย
กำลังดำเนินการ ไม่บังคับ ชื่อของฟังก์ชัน Callback ที่จะเริ่มทำงานเมื่อโหลดทรัพยากร Dependency ทั้งหมดแล้ว
แสดงผล explicit
onload
ไม่บังคับ ระบุว่าจะแสดงวิดเจ็ตอย่างชัดเจนหรือไม่ ค่าเริ่มต้นจะเป็น onload ซึ่งจะแสดงวิดเจ็ตในแท็ก g-recaptcha แรกที่พบ
hl ดูรหัสภาษา ไม่บังคับ บังคับให้วิดเจ็ตแสดงผลในบางภาษา ตรวจหาภาษาของผู้ใช้โดยอัตโนมัติหากไม่ได้ระบุ

แอตทริบิวต์แท็ก g-recaptcha และพารามิเตอร์ grecaptcha.render

แอตทริบิวต์แท็ก g-recaptcha พารามิเตอร์ grecaptcha.render ค่า ค่าเริ่มต้น คำอธิบาย
data-sitekey คีย์เว็บไซต์ คีย์เว็บไซต์ของคุณ
ป้ายข้อมูล ป้าย ด้านล่างขวาล่างในบรรทัด ขวาล่าง ไม่บังคับ เปลี่ยนตำแหน่งป้าย reCAPTCHA "ในบรรทัด" ช่วยให้คุณวางตำแหน่งด้วย CSS
ขนาดข้อมูล ขนาด ไม่ปรากฏ ไม่บังคับ ใช้เพื่อสร้างวิดเจ็ตที่มองไม่เห็นซึ่งผูกกับ div และเรียกใช้แบบเป็นโปรแกรม
data-tabindex ดัชนีแท็บ 0 ไม่บังคับ ดัชนีแท็บของชาเลนจ์ หากองค์ประกอบอื่นๆ ในหน้าเว็บใช้ Tabindex ก็ควรตั้งค่าไว้เพื่อให้ผู้ใช้ไปยังส่วนต่างๆ ได้ง่ายขึ้น
data-callback Callback ไม่บังคับ ชื่อของฟังก์ชัน Callback ซึ่งจะทำงานเมื่อผู้ใช้ส่งการตอบกลับที่สำเร็จ ระบบจะส่งโทเค็น g-recaptcha-response ไปยัง Callback
data-expired-callback expired-callback ไม่บังคับ ชื่อของฟังก์ชัน Callback จะทำงานเมื่อการตอบสนอง reCAPTCHA หมดอายุและผู้ใช้ต้องยืนยันอีกครั้ง
data-error-callback การติดต่อกลับข้อผิดพลาด ไม่บังคับ ชื่อของฟังก์ชัน Callback จะทำงานเมื่อ reCAPTCHA พบข้อผิดพลาด (โดยปกติคือการเชื่อมต่อเครือข่าย) และจะดำเนินการต่อไม่ได้จนกว่าจะกลับมาเชื่อมต่ออีกครั้ง หากคุณระบุฟังก์ชันที่นี่ คุณมีหน้าที่แจ้งให้ผู้ใช้ทราบว่าควรลองอีกครั้ง
เป็นแห่งๆ เท็จ ไม่บังคับ เพื่อให้เจ้าของปลั๊กอินไม่ต้องขัดขวางการติดตั้ง reCAPTCHA ที่มีอยู่ในหน้าเว็บ หากจริง อินสแตนซ์ reCAPTCHA นี้จะเป็นส่วนหนึ่งของพื้นที่รหัสที่แยกต่างหาก

JavaScript API

วิธีการ คำอธิบาย
grecaptcha.render(
คอนเทนเนอร์
พารามิเตอร์
ใช้ต่อ
)
แสดงผลคอนเทนเนอร์เป็นวิดเจ็ต reCAPTCHA และแสดงผลรหัสของวิดเจ็ตที่สร้างใหม่
คอนเทนเนอร์
องค์ประกอบ HTML ที่จะแสดงวิดเจ็ต reCAPTCHA ระบุรหัสของคอนเทนเนอร์ (สตริง) หรือตัวองค์ประกอบ DOM
พารามิเตอร์
ออบเจ็กต์ที่มีพารามิเตอร์เป็นคู่คีย์=ค่า เช่น {"sitekey": "your_site_key", "theme": "light"} ดูพารามิเตอร์ grecaptcha.render
ใช้ต่อ
ใช้แอตทริบิวต์ data-* ที่มีอยู่ในองค์ประกอบหากไม่ได้ระบุพารามิเตอร์ที่เกี่ยวข้อง โดยพารามิเตอร์จะมีลำดับความสำคัญเหนือแอตทริบิวต์
grecaptcha.execute(
opt_widget_id
)
เรียกใช้การตรวจสอบ reCAPTCHA แบบเป็นโปรแกรม ใช้หาก reCAPTCHA ที่ไม่แสดงอยู่ใน div แทนที่จะเป็นปุ่ม
opt_widget_id
รหัสวิดเจ็ตซึ่งไม่บังคับ จะใช้ค่าเริ่มต้นเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ
grecaptcha.reset(
opt_widget_id
)
รีเซ็ตวิดเจ็ต reCAPTCHA
opt_widget_id
รหัสวิดเจ็ตซึ่งไม่บังคับ จะใช้ค่าเริ่มต้นเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ
grecaptcha.getResponse(
opt_widget_id
)
รับการตอบกลับสำหรับวิดเจ็ต reCAPTCHA
opt_widget_id
รหัสวิดเจ็ตซึ่งไม่บังคับ จะใช้ค่าเริ่มต้นเป็นวิดเจ็ตแรกที่สร้างขึ้นหากไม่ได้ระบุ

ตัวอย่าง

การแสดงผลที่ชัดเจนหลังจาก Callback ที่โหลด

<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>

การเรียกใช้การทดสอบ reCAPTCHA ที่ไม่แสดงหลังจากการตรวจสอบฝั่งไคลเอ็นต์

<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>