新的Google reCaptcha:如何更改文字“我不是机器人”

时间:2015-01-07 19:15:57

标签: captcha recaptcha

我已经在瑜伽网站上安装了最新的Google reCaptcha工具。现在,用户对文本感到困惑"我不是机器人"出现在复选框旁边。

我们的大多数用户都不知道"机器人"意味着在这种情况下,他们认为形式是破碎的。他们也觉得使用我们的形式不太安全,因为看到“机器人”这个词是很奇怪的。在瑜伽网站上。

如何更改文字"我不是机器人"用户理解的其他内容?

文档在这一点上显得沉默......

此外,似乎reRecaptcha的内容通过远程JS和CSS完全锁定。我尝试使用以下javascript更改Google的recaptcha-anchor-label文字时未成功:

<script type="text/javascript">
    $(document).ready(function () {
        $("#recaptcha-anchor-label").text("Something different.");
    });
</script>

6 个答案:

答案 0 :(得分:24)

通过language codes使用 hl,可以将Google Recaptcha中的机器人&#34; 更改为其他语言脚本参数。

这就是你强迫西班牙语的方式,例如:

<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=es">

来源:Google ReCaptcha Docs

答案 1 :(得分:4)

目前无法使用他们的工具。如果你想使用另一种停止机器人的方法:卸载reCaptcha,并使用你可以控制的东西,也许是一个简单的随机问答,与瑜伽有关。

答案 2 :(得分:4)

您无法更改该特定文本,因为它属于第三方iframe,但有一种解决方法可以完全满足OP的要求。

您可以在父级div上添加新的div,您可以在标签文字上对其进行控制,对齐和重叠,前提是Google Captcha始终具有固定大小。因此,according to documentation,考虑到您的代码div上可能有主要的Captcha class="g-recaptcha",您只需执行以下操作:

$('.g-recaptcha').append('<div id="new_label"></div>');  
$('#new_label').text("My own text");
$('#new_label').css({"position":"absolute", "width":"160px", "top":"27px", "left":"53px", "background-color":"#f9f9f9"});

有效:)

enter image description here

答案 3 :(得分:3)

这是不可能的,因为Same Origin Policy禁止尝试访问具有其他来源(Google服务器)的iframe(验证码)的任何脚本(在您的网站上)。

如果我们拥有两台服务器,我们应该可以运行下面的代码:)

$( ".g-recaptcha > div > div > iframe" ).contents().find( "#recaptcha-anchor-label" ).text('Custom Text');

答案 4 :(得分:1)

回到这个老问题-现在有一个reCAPTCHA小部件的不可见版本,它允许您自己设计UI。您可以将挑战的执行绑定到您创建的按钮,也可以在后台以编程方式调用它。

我在此引用文档页面以供快速参考,您可以阅读有关此here的更多信息。

  

必需的属性是类名'g-recaptcha',您在data-sitekey属性中的站点密钥以及在data-callback属性中处理验证码完成的JavaScript回调的名称。

头:

   <script src="https://www.google.com/recaptcha/api.js" async defer></script>
   <script>
     function onSubmit(token) {
       document.getElementById("demo-form").submit();
     }
   </script>

身体:

  <form id='demo-form' action="?" method="POST">
    <button class="g-recaptcha" data-sitekey="your_site_key" data-callck='onSubmit'>Submit</button>
    <br/>
  </form>

答案 5 :(得分:0)

我使用了客户端验证码,这是我的代码。它对于我的门户网站来说工作正常。

 this.canvas = document.getElementById( 'myCanvas' ) as HTMLCanvasElement;
    var context = this.canvas.getContext( '2d' );
    context.clearRect( 0, 0, this.canvas.width, this.canvas.height );
    var alpha = [];
    alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
         '2', '3', '4', '5', '6', '7', '8', '9'];
    var i;
    for ( i = 0; i < 6; i++ ) {
        var a = alpha[Math.floor( Math.random() * alpha.length )];
        var b = alpha[Math.floor( Math.random() * alpha.length )];
        var c = alpha[Math.floor( Math.random() * alpha.length )];
        var d = alpha[Math.floor( Math.random() * alpha.length )];
        var e = alpha[Math.floor( Math.random() * alpha.length )];
        var f = alpha[Math.floor( Math.random() * alpha.length )];
        var g = alpha[Math.floor( Math.random() * alpha.length )];
    }
    this.captchaCode = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' ' + f + ' ' + g;
    var ctext = this.captchaCode;
    this.loginForm.controls['captcha'].setValue( this.captchaCode.replace( /\s/g, "" ) );

这是我正在绘制的画布图像

 /*Text to image captcha */
    var imageObj = new Image();
    imageObj.onload = function() {
        context.drawImage( imageObj, 0, 0 );
        context.font = "24px arial";
        context.fillText( ctext, 84, 32 );
    };
    imageObj.src = 'assets/modules/dummy-assets/common/img/captcha2.jpg';