Uncaught ReferenceError: Recaptcha ist nicht definiert

Habe ich ein Problem mit der Umsetzung der reCaptcha-Steuerelement auf ein Kontaktformular.

Den folgenden Fehler geworfen wird geladen: Uncaught ReferenceError: Recaptcha ist nicht definiert

Hier ist ein partieller Ausschnitt der code, den ich verwende:

<form role="form" id="ContactMessageForm">
    <div class="form-group">
        <div id="CaptchaContainer"></div>
    </div>
    <button type="button" class="btn btn-default" id="ContactMessageSendButton">Send</button>
</form>

<script type="text/javascript" src="/scripts/mail.min.js" defer="defer"></script>
<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
    $(document).ready(function () { 
        /* Initialize reCaptcha Control */
        Recaptcha.destroy();
        Recaptcha.create('6Lc4V_ASAAAAAMnnwUcaTewH1mlOdylMgAyxb_m6', 'CaptchaContainer', {
            theme: 'clean',
            callback: Recaptcha.focus_response_field
        });
    });
</script>

Ist wahrscheinlich ein Tippfehler in meinem code, aber ich bin nicht es zu sehen.

Sehen Sie die aktuellen Fehlers gefeuert: http://eat-sleep-code.com/#!/Kontakt

Wie es scheint ein timing-problem zwischen Ihrem HTML-code laden (Formular+Skript) und der Ausführung der $(document).ready (), die sich vor dem recaptcha-load-Ereignis.
Nicht sicher, ob ich Folgen. Da das Recaptcha.create-Aufruf wird innerhalb der $(document).ready(), es sollte nicht das Feuer, bis das Formular und Skript fertig ist laden.
Sie sind bereits laden die "Kontakt" - Inhalt in ein $(document).ready() im Rendern.js/renderContent(), so dass jedes andere Dokument.ready() werden sofort.
Wow, etwas neues gelernt. Also, was tun Sie denken wäre der beste Weg, damit umzugehen. Sollte sollte ich wickeln Sie es in ein setTimeout und überprüfen, um zu sehen, ob Recaptcha definiert ist?
setTimeout arbeiten konnte, manchmal, wenn Sie lange genug warten und es ist kein problem auf google Seite... ich bin mir nicht sicher, was ist die beste option. Ich würde vielleicht hinzufügen, einen patch, Rendern, um zu überprüfen, für die 'contact' in der Lage.hash, dann fügen Sie die google recaptcha script mit dem Dokument.createElement('script'), und überprüfen Sie .onload-Ereignis starten Verwendung von Recaptcha Objekt.

InformationsquelleAutor eat-sleep-code | 2014-03-20

Schreibe einen Kommentar