我已经在瑜伽网站上安装了最新的Google reCaptcha工具。现在,用户对文本感到困惑"我不是机器人"出现在复选框旁边。
我们的大多数用户都不知道"机器人"意味着在这种情况下,他们认为形式是破碎的。他们也觉得使用我们的形式不太安全,因为看到“机器人”这个词是很奇怪的。在瑜伽网站上。
如何更改文字"我不是机器人"用户理解的其他内容?
文档在这一点上显得沉默......
此外,似乎reRecaptcha的内容通过远程JS和CSS完全锁定。我尝试使用以下javascript更改Google的recaptcha-anchor-label
文字时未成功:
<script type="text/javascript">
$(document).ready(function () {
$("#recaptcha-anchor-label").text("Something different.");
});
</script>
答案 0 :(得分:24)
通过language codes使用 hl,可以将Google Recaptcha中的机器人&#34; 更改为其他语言脚本参数。
这就是你强迫西班牙语的方式,例如:
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=es">
答案 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"});
有效:)
答案 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';