朝。 jqueryダイアログボックス(ライトボックス)の内部にレンダリングされ、現在はフォームの一部としてrecaptchaを実装しようとしているフォームがあります。私がsymfonyフレームワークを使用しているので、私はrecaptchaウィジェットを含むsfFormExtraPluginを使用することができます。このウィジェットは元のページの一部としてエコーするとうまく描画されますが、jqueryダイアログボックス内ではレンダリングされません。RecaptchaはsfFormExtraPluginとJQueryダイアログ(ライトボックス)を使用してレンダリングしません
は、いくつかは、調査した後、私はreCAPTCHAのが作成するスクリプトは次のようになりますが見つかりました:
var RecaptchaState = {
site : '6Let7r0SAAAAAJFp77tW4gRze7r5y89Cql_msPcm',
challenge : '03AHJ_VusnO7jeI3VF-cHgOIv9RY9RIpYl2QWea_LULIdL8xrM9PZdcZZ7I9gFf4gSbr1fxGCSQjQZPJQ1sa6p1oEI9U_nkU8f2SjczxjH6nzmy43Q-m_8rnxWhhRUIDa7iTPEwo4-dwi-FipyMHsSAz-nE5yfFQfZog',
is_incorrect : false,
programming_error : '',
error_message : '',
server : 'http://www.google.com/recaptcha/api/',
timeout : 18000
};
document.write('<scr'+'ipt type="text/javascript" s'+'rc="' + RecaptchaState.server + 'js/recaptcha.js"></scr'+'ipt>');
私はB/C JavascriptをjQueryのダイアログ内で呼び出されている、問題はdocument.writeをだと思います実際のドキュメントと比較すると、document.writeは期待どおりに動作しません。
思考?
- 編集 - 私のblog上
投稿最終的な解決策は、私はここに掲載しているだろうが、それはかなり複雑です。
あなたのライトボックスがAJAXリクエストのレスポンスで満たされている場合、レスポンス内のjavascriptが実行されない可能性があります...ライトボックスの仕組みを教えてください。また、Firebugでウィジェットを調べるときに表示されるhtmlを表示できますか? – greg0ire
@ greg0ire:あなたは正しいです。 b/cはdocument.write jsが実行されていないことです。完了したら結果を掲載します。私は、今すぐ検証に取り組んで、recaptchaウィジェットを描画するライトボックスを得ました。 –
編集による最終ソリューションへのリンクを投稿しました。応答していただきありがとうございます。 –