安装了Typo3,我已将Googles reCaptcha添加到表单中。
在其他Typo3安装上是否已经成功,但这一次,我在浏览器中收到了阻止的帧错误。
Blocked frame with origin "https://www.google.com" from accessing a cross-origin frame.
at um.f.hc (https://www.gstatic.com/recaptcha/api2/....)
这种情况发生了两次,之后,我在前端接受按摩。
请升级到支持的浏览器以获取reCAPTCHA质询。
或者,如果您认为此页面出错,请检查您的互联网连接并重新加载。
为什么会发生这种情况?
我检查的所有浏览器(Chrome,FF,IE11)都会发生这种情况。
要包含reCaptcha,我将以下内容添加到模板中:
<script src="//www.google.com/recaptcha/api.js" async defer></script>
<script type="text/javascript">
var captchaCallback = function() { document.getElementById("captchaResponse").value = document.getElementById("g-recaptcha-response").value }
var onSuccess = function(response) {
var errorDivs = document.getElementsByClassName("recaptcha-error");
if (errorDivs.length) {
errorDivs[0].className = "";
}
var errorMsgs = document.getElementsByClassName("recaptcha-error-message");
if (errorMsgs.length) {
errorMsgs[0].parentNode.removeChild(errorMsgs[0]);
}
captchaCallback();
document.getElementById("fhcallback").submit();
};
</script>
<input type="hidden" id="captchaResponse" name="fhcb[recaptcha]" value="" />
<div id="recaptcha-demo" class="g-recaptcha" data-sitekey="[MYPUBLICKEY]" data-callback="onSuccess" data-bind="inp-submit"></div>
<button class="orderButton bold" id="inp-submit" ###submit_nextStep###>Senden</button>
在PHP中:
$secret = '[MYSECRETKEY]';
$url = 'https://www.google.com/recaptcha/api/siteverify';
$apiResponse = json_decode(\TYPO3\CMS\Core\Utility\GeneralUtility::getUrl($url.'?secret='.$secret.'&response='.$this->gp[$this->formFieldName]), true);
if($apiResponse['success'] == FALSE) {
$checkFailed = $this->getCheckFailed();
}
表单在页面加载时不可见。在点击其切换元素后,它会在页面右侧滑动。
我没有想法,客户也在烦我。
答案 0 :(得分:0)
我找到了问题。在此安装中,包含了JavaScript库 Mootools 。
删除Mootools的包含后,没有发生阻塞帧的进一步问题。