AJAX API를 통해 reCAPTCHA를 사용하여 모달 대화 상자에 captcha를 표시하고 있습니다. jqModal을 사용하여 상자를 표시하고 PHP 버전이 이미 jqModal (알려진 버그 : http://markmail.org/message/bvip5vyb3czm7ngu)으로 인해 버그가 있으므로 reCAPTCHA의 AJAX 버전을 사용하고 있습니다.reCAPTCHA Safari의 모달 대화 상자에서 AJAX API가 일관되게 작동하지 않습니다.
이제 reCAPTCHA가 Firefox에서 잘 작동합니다. 그러나 Safari에서는 항상 표시되지는 않습니다. 때로는 정상적으로 작동하지만 시간의 약 20 %는 reCAPTCHA 상자가 표시되지 않습니다.
는jqModal 선언은 다음과 같습니다
$().ready(function() {
$('#modalBox_register').jqm({
ajax: '/modals/register.php',
trigger: 'a#registerButtonLink',
onShow: function(h) {
h.w.css('opacity', 1.00).fadeIn(300);
},
onHide: function(h) {
h.w.fadeOut(300, function() { if (h.o) h.o.remove(); });
}
});
});
그리고 모달 상자 내에서 HTML/PHP는 다음과 같다 : 사람이 단서가 있습니까
<div id="registerModal">
<p class="caption">Registration form:</p>
<form name="registerForm" id="modalRegisterForm" class="modalForm" action="/register/" method="post">
<table cellspacing="15" border="0">
<tr>
<td class="left"><label for="firstName">First Name:</label></td>
<td class="right"><input type="text" name="firstName" id="firstName" value="" class="registerModalTextField" /></td>
</tr>
<tr>
<td class="left"><label for="lastName">Last Name:</label></td>
<td class="right"><input type="text" name="lastName" id="lastName" value="" class="registerModalTextField" /></td>
</tr>
<tr>
<td class="left"><label for="email">Email Address:</label></td>
<td class="right"><input type="text" name="email" id="email" value="" class="registerModalTextField" /></td>
</tr>
<tr>
<td class="left"><label for="password">Password:</label></td>
<td class="right"><input type="password" name="password" id="password" value="" class="registerModalTextField" /></td>
</tr>
<tr>
<td class="left"><label for="passwordConfirm">Confirm Your Password:</label></td>
<td class="right"><input type="password" name="passwordConfirm" id="passwordConfirm" value="" class="registerModalTextField" /></td>
</tr>
<tr>
<td class="left"> </td>
<td class="right"><div id="termswrap">
<input id="terms" type="checkbox" name="terms" />
<label id="lterms" for="terms"> I have read and accept the <a href="/backmatter/termsofuse/">Terms of Use.</a><br /></label>
</div><!-- /#termswrap --></td>
</tr>
<!-- reCAPTCHA -->
<tr>
<td class="left"><label for="captcha">Are you human?</label></td>
<td class="right"><!-- Using the reCAPTCHA AJAX API, because the non-AJAX API is buggy with jqModal -->
<div id="recaptcha_div"></div>
<script type="text/javascript"
src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script> <script
type="text/javascript">
Recaptcha.create("123456789...",
"recaptcha_div", {
theme: "white"
});
</script>
</td>
</tr>
<tr>
<td class="left"> </td>
<td class="right"><input type="image" id="submitButton" src="/images/modals/button_register.png" value="Submit" alt="Submit" name="submit" /></td>
</tr>
</table>
</form>
</div><!--/#registerModal-->
왜 reCAPTCHA를 AJAX 호출 ISN ' Safari에서 제대로 작동하지 않습니까?
사파리에서 얻은 결과는 무엇입니까? 코드가 호스팅에 있습니까? 그래서 확인할 수 있습니까? 이게 관련이 있는지는 모르겠지만 사파리와 다른 웹킷 기반 브라우저는 AJAX가로드 된 파일에 정의 된 스타일을 표시 할 수 없기 때문에 스타일은 AJAX를 통해 보조 페이지를로드하는 기본 페이지에로드해야합니다. –