Cách ẩn huy hiệu reCAPTCHA vô hình của Google


156

Khi triển khai reCATPTCHA mới vô hình của Google, theo mặc định, bạn nhận được một huy hiệu "được bảo vệ bởi reCAPTCHA" ở dưới cùng bên phải của màn hình bật ra khi bạn cuộn qua nó.

nhập mô tả hình ảnh ở đây

Tôi muốn che giấu điều này.

Câu trả lời:


217

Google hiện cho phép ẩn Huy hiệu, khỏi Câu hỏi thường gặp :

Tôi muốn ẩn huy hiệu reCAPTCHA v3. Những gì được phép?

You are allowed to hide the badge as long as you include the reCAPTCHA
branding visibly in the user flow. Please include the following text:

This site is protected by reCAPTCHA and the Google
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.

Ví dụ:

nhập mô tả hình ảnh ở đây

Vì vậy, bạn có thể chỉ cần ẩn nó bằng CSS sau:

.grecaptcha-badge { 
    visibility: hidden;
}

nhập mô tả hình ảnh ở đâyKhông sử dụng display: none;vì nó xuất hiện để vô hiệu hóa kiểm tra thư rác (cảm ơn @Zade)


24
Tôi sẽ không cho bạn biết phải làm gì;) Tôi chỉ cảnh báo cho bất kỳ người dùng nào khác rằng việc xóa nó là bất hợp pháp.
Yann39

16
điều này là hoàn toàn không thể chấp nhận được, bởi vì trong các màn hình nhỏ như điện thoại di động, huy hiệu này bao phủ một khu vực quan trọng của trang web.
Don Dilanga

12
Chấp nhận nó, hoặc chọn một dịch vụ khác. Google có mọi quyền yêu cầu bạn thể hiện thương hiệu cho dịch vụ miễn phí của họ . Thậm chí, bạn có thể định vị lại huy hiệu thành nội tuyến với biểu mẫu developers.google.com/recaptcha/docs/invisible#render_param .
Alexander Otavka

1
Vâng, tôi chỉ sử dụng captcha v3 này trên trang mẫu liên hệ của tôi. Vì vậy, đây là trang duy nhất tôi muốn huy hiệu này hiển thị. Nó không áp dụng ở nơi khác trên trang web của tôi. Khả thi?
Andrew Truckle

4
@ Yann39 - vui lòng cập nhật câu trả lời của bạn. Bạn có thể ẩn nó đi và ví dụ: chỉ thêm nó vào trang liên hệ: developers.google.com/recaptcha/docs/faq
Sol

172

Tôi đã thử nghiệm tất cả các phương pháp và:

CẢNH BÁO: display: none GIẢI QUYẾT việc kiểm tra thư rác!

visibility: hiddenopacity: 0KHÔNG vô hiệu hóa việc kiểm tra thư rác.

Mã sử ​​dụng:

.grecaptcha-badge { 
    visibility: hidden;
}

Khi bạn ẩn biểu tượng huy hiệu, Google muốn bạn tham chiếu dịch vụ của họ trên biểu mẫu của bạn bằng cách thêm vào đây:

<small>This site is protected by reCAPTCHA and the Google 
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.
</small>

Kết quả ví dụ


6
Câu trả lời này cần phải cao hơn! Nó chứa tất cả các thông tin cần thiết cho giải pháp một cách cô đọng.
Bjorn Larsson

3
Chính xác những gì tôi đang tìm kiếm và điều này làm việc tuyệt vời. Ngoài ra, đối với bất kỳ ai đang tìm kiếm bằng chứng cho phép, vui lòng kiểm tra trang này (nếu bạn chưa thấy nó trên toàn bộ chủ đề SO này) developers.google.com/recaptcha/docs/faq
Jake

Cảm ơn đã đề cập đến điều này @Jake. Tôi đã thêm điều này vào câu trả lời của tôi.
Helenesh

Có ai tìm thấy một cách tài liệu để ẩn huy hiệu chứ không phải là một css hack? Google cung cấp một cách khác để thể hiện thương hiệu của họ nhưng tôi không thể tìm thấy một phương thức được hỗ trợ để ẩn huy hiệu của họ.
Giá Collin

38

Đặt data-badgethuộc tính thànhinline

<button type="submit" data-sitekey="your_site_key" data-callback="onSubmit" data-badge="inline" />

Và thêm CSS sau

.grecaptcha-badge {
    display: none;
}

7
Hãy cẩn thận; Điều này dường như để vô hiệu hóa việc kiểm tra thư rác.
Zade

3
Điều này thực sự vô hiệu hóa việc kiểm tra thư rác? Nếu vậy, tại sao tất cả các upvote?
Charlie Schliesser

1
@Zade có thể thay vì sử dụng opacity: 0hay visibility: hidden? bạn có liên kết đến đâu không?
ctf0

4
Thỏa thuận người dùng nói rằng bạn phải thông báo cho người dùng như @ Yann39 nói ở trên.
Mihail Minkov

1
@Helenesh đáng để trả lời riêng?
Anupam

14

Google hiện cho biết "Bạn được phép ẩn huy hiệu miễn là bạn bao gồm nhãn hiệu reCAPTCHA rõ ràng trong luồng người dùng." Liên kết


2
Chỉ áp dụng cho v3! v2 vẫn yêu cầu hiển thị huy hiệu. :(
ADTC

13

Vì việc ẩn huy hiệu không thực sự hợp pháp theo Điều khoản Sử dụng và các tùy chọn vị trí hiện tại đã phá vỡ UI và / hoặc UX của tôi, tôi đã đưa ra các tùy chỉnh sau đây bắt chước định vị cố định, nhưng thay vào đó được hiển thị nội tuyến:

Ảnh chụp lại "vô hình"

Bạn chỉ cần áp dụng một số CSS trên thùng chứa huy hiệu của bạn:

.badge-container {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
  width: 70px;
  height: 60px;
  margin: 0 auto;
  box-shadow: 0 0 4px #ddd;
  transition: linear 100ms width;
}
.badge-container:hover {
    width: 256px;
}

Tôi nghĩ rằng đó là xa như bạn có thể đẩy nó một cách hợp pháp.


1
Đẹp. Tôi đã đẩy nó hơn nữa (mà không thực sự che giấu nó hoàn toàn) bằng cách sử dụng transform: scale(0.6)opacity: 0.6
squarecandy

Bạn có thể mở biểu ngữ màu xanh bên phải hơn bên trái không? Cũng thích nghi với bảng màu của nó?
Vaishal Patel

Về lý thuyết, @VaishalPatel, vâng, nhưng có hai nhược điểm: thứ nhất, việc giả mạo thiết kế huy hiệu gốc được Google khuyến khích và thứ hai, càng có nhiều giả định về thiết kế hiện tại bạn thực hiện trong các thay đổi của mình, giải pháp của bạn càng trở nên mong manh được tự do thay đổi kiểu huy hiệu và bố cục bất cứ khi nào họ cảm thấy thích.
krukid

1
@krukid Tôi đã đi với kiểu nội tuyến mặc định của họ.
Vaishal Patel

9

Tôi quyết định ẩn huy hiệu trên tất cả các trang trừ trang liên hệ của tôi (sử dụng Wordpress):

/* Hides the reCAPTCHA on every page */
.grecaptcha-badge {
    visibility: hidden !important;
}

/* Shows the reCAPTCHA on the Contact page */
/* Obviously change the page number to your own */
.page-id-17 .grecaptcha-badge {
    visibility: visible !important;
}

Tôi không phải là nhà phát triển web, vì vậy hãy sửa cho tôi nếu có gì sai.

EDIT: Cập nhật để sử dụng khả năng hiển thị thay vì hiển thị.


điều này sẽ hoạt động nhưng id trang # là dành riêng cho trang web của bạn, vì vậy bất kỳ ai sử dụng điều này sẽ cần điều chỉnh id để phù hợp với trang họ muốn thực hiện hiển thị trên đó. | | Tôi đã thấy các báo cáo nói rằng thực hiện hiển thị này: không có; cũng sẽ vô hiệu hóa việc kiểm tra nhưng tôi không chắc về điều đó ngay bây giờ.
Michael Tunnell

Cẩn thận! Điều này vô hiệu hóa việc kiểm tra thư rác. Kiểm tra câu trả lời của tôi để biết thêm thông tin
Helenesh

Cập nhật dựa trên những nhận xét trên từ Michael & Helenesh
Leon

4

Một biến thể nhỏ của bài đăng của Matthew Dowell tránh đèn flash ngắn, nhưng hiển thị bất cứ khi nào có thể nhìn thấy biểu mẫu liên hệ 7:

div.grecaptcha-badge{
    width:0 !important;
}

div.grecaptcha-badge.show{
    width:256px !important; 
}

Sau đó tôi đã thêm phần sau vào tiêu đề.php trong chủ đề con của mình:

<script>
jQuery( window ).load(function () { 
    if( jQuery( '.wpcf7' ).length ){ 
        jQuery( '.grecaptcha-badge' ).addClass( 'show' );
    }
});
</script>

3

Giải pháp của tôi là ẩn huy hiệu, sau đó hiển thị nó khi người dùng tập trung vào đầu vào biểu mẫu - do đó vẫn tuân thủ T & C của Google.

Lưu ý: ReCAPTCHA tôi đã điều chỉnh đã được tạo bởi một plugin WordPress, do đó bạn có thể cần phải tự bọc lại reCAPTCHA <div class="inv-recaptcha-holder"> ... </div>.

CSS

.inv-recaptcha-holder {
  visibility: hidden;
  opacity: 0;
  transition: linear opacity 1s;
}

.inv-recaptcha-holder.show {
  visibility: visible;
  opacity: 1;
  transition: linear opacity 1s;
}

jQuery

$(document).ready(function () {
  $('form input, form textarea').on( 'focus', function() {
    $('.inv-recaptcha-holder').addClass( 'show' );
  });
});

Rõ ràng bạn có thể thay đổi bộ chọn jQuery để nhắm mục tiêu các biểu mẫu cụ thể nếu cần thiết.


3

Đối với người dùng của Mẫu liên hệ 7 trên Wordpress, phương pháp này phù hợp với tôi: Tôi ẩn Recaptcha v3 trên tất cả các trang trừ những trang có Biểu mẫu liên hệ 7.

Nhưng phương pháp này sẽ hoạt động trên bất kỳ trang web nào bạn đang sử dụng bộ chọn lớp duy nhất có thể xác định tất cả các trang có thành phần biểu mẫu nhập văn bản.

Đầu tiên, tôi đã thêm một quy tắc kiểu đích trong CSS có thể thu gọn ô xếp:

CSS

 div.grecaptcha-badge.hide{
    width:0 !important;
}

Sau đó, tôi đã thêm tập lệnh JQuery trong tiêu đề của mình để kích hoạt sau khi cửa sổ tải để bộ chọn lớp 'grecaptcha-Badge' có sẵn cho JQuery và có thể thêm lớp 'ẩn' để áp dụng kiểu CSS có sẵn.

$(window).load(function () { 
    if(!($('.wpcf7').length)){ 
      $('.grecaptcha-badge').addClass( 'hide' );
       }
});

Gạch của tôi vẫn sẽ nhấp nháy trên mỗi trang trong nửa giây, nhưng đó là cách giải quyết tốt nhất mà tôi đã tìm thấy cho đến nay mà tôi hy vọng sẽ tuân thủ. Đề xuất cải tiến đánh giá cao.


2

điều này không vô hiệu hóa việc kiểm tra thư rác

div.g-recaptcha > div.grecaptcha-badge {
    width:0 !important;
}

2

Nếu bạn đang sử dụng bản cập nhật Mẫu liên hệ 7 và phiên bản mới nhất (phiên bản 5.1.x), bạn sẽ cần cài đặt, thiết lập Google reCAPTCHA v3 để sử dụng.

theo mặc định, bạn nhận được biểu tượng Google reCAPTCHA được hiển thị trên mỗi trang ở dưới cùng bên phải của màn hình. Điều này là theo đánh giá của chúng tôi đang tạo ra một trải nghiệm xấu cho người dùng. Và trang web, blog của bạn sẽ chậm lại một chút (phản ánh bởi PageSpeed ​​Score), bởi trang web của bạn sẽ phải tải thêm 1 thư viện JavaScript từ Google để hiển thị huy hiệu này.

Bạn có thể ẩn Google reCAPTCHA v3 khỏi CF7 (chỉ hiển thị khi cần thiết) bằng cách thực hiện theo các bước sau:

Đầu tiên, bạn mở functions.phptệp chủ đề của mình (sử dụng Trình quản lý tệp hoặc Máy khách FTP). Tệp này được định vị trong: /wp-content/themes/your-theme/và thêm đoạn mã sau (chúng tôi đang sử dụng mã này để xóa hộp reCAPTCHA trên mỗi trang):

    remove_action( 'wp_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts' );

Tiếp theo, bạn sẽ thêm đoạn mã này vào trang bạn muốn nó hiển thị Google reCAPTCHA (trang liên hệ, đăng nhập, trang đăng ký Thẻ):

if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
    add_action( 'wp_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts', 10, 0 );
}

Tham khảo trên Blog OIW - Cách xóa Logo Google reCAPTCHA khỏi Biểu mẫu liên hệ 7 trong WordPress (Ẩn huy hiệu reCAPTCHA)


2

Vâng, bạn có thể làm điều đó . bạn có thể sử dụng css hoặc javascript để ẩn huy hiệu reCaptcha v3.

  1. Cách CSS sử dụng display: nonehoặc visibility: hiddenđể ẩn lô reCaptcha. Thật dễ dàng và nhanh chóng.
.grecaptcha-badge {
    display:none !important;
}
  1. Cách Javascript
var el = document.querySelect('.grecaptcha-badge');
el.style.display = 'none';

Ẩn huy hiệu là hợp lệ, theo chính sách của google và được trả lời trong faq tại đây . Bạn nên hiển thị chính sách bảo mật và điều khoản sử dụng từ google như dưới đây.

chính sách và điều khoản sử dụng của google


1

Tôi thấy bình luận tiếp theo về điều này

Cũng rất hữu ích khi đặt huy hiệu nội tuyến nếu bạn muốn áp dụng CSS của riêng mình cho nó. Nhưng hãy nhớ rằng bạn đã đồng ý hiển thị Điều khoản và điều kiện của Google khi bạn đăng ký khóa API - vì vậy đừng ẩn nó, làm ơn. Và mặc dù có thể làm cho huy hiệu biến mất hoàn toàn bằng CSS, chúng tôi không khuyến nghị sử dụng nó.


0

Lưu ý: nếu bạn chọn ẩn huy hiệu, vui lòng sử dụng
.grecaptcha-badge { visibility: hidden; }

Bạn được phép ẩn huy hiệu miễn là bạn bao gồm nhãn hiệu reCAPTCHA rõ ràng trong luồng người dùng. Vui lòng bao gồm các văn bản sau:

Trang web này được bảo vệ bởi reCAPTCHA và Google
<a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.

biết thêm chi tiết tại đây reCaptacha


-1

Recaptcha liên hệ mẫu 7 và giải pháp Recaptcha v3.

body:not(.page-id-20) .grecaptcha-badge {
    display: none;
}

Nhiều hơn một mẫu liên hệ?

body:not(.page-id-12):not(.page-id-43) .grecaptcha-badge {
    display: none;
}

Bạn có thể thêm nhiều thông báo khác nếu bạn có nhiều trang biểu mẫu liên hệ hơn.

body:not(.page-id-45):not(.page-id-78):not(.page-id-98) .grecaptcha-badge {
    display: none;
}

Hãy chắc chắn rằng phần cơ thể của bạn sẽ thích điều này:

<body>

Thay đổi nó để nó trông như thế này:

 <body <?php body_class(); ?>>

Xin vui lòng các câu trả lời khác, không hiển thị không vô hiệu hóa kiểm tra thư rác.
Helenesh

@Helenesh Kiểm tra thư rác là gì và nó có liên quan như thế nào với việc thêm kiểu CSS?
Berkant Ipek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.