Утро. У меня есть форма, которая отображается внутри диалогового окна jquery (лайтбокс) и в настоящее время пытается реализовать recaptcha как часть формы. Поскольку я использую инфраструктуру Symfony, я могу использовать sfFormExtraPlugin, который включает в себя виджет recaptcha. Этот виджет отображается нормально, если я отображаю его как часть исходной страницы, но он не будет отображаться в диалоговом окне 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>');
Я думаю, что проблема в document.write, b / c javascript вызывается в диалоговом окне jquery против фактического документа, поэтому document.write не будет работать должным образом.
Мысли?
- Правка -
Опубликовал окончательное решение в моем блоге , я бы написал здесь, но это довольно сложно.