У меня такая же проблема, но только в Safari (предположительно, Chrome тоже).Он отлично работает в Firefox.Это не имеет ничего общего с Ruby (я использую Grails), и проблема возникает со всеми всплывающими окнами jQuery (я пробовал blockUI, SimpelModal и ThickBox).
Насколько я могу сказать, по какой-то причине, когдаjQuery перемещает iframe (то есть, что такое ReCaptcha) в domtree, Webkit решает загрузить содержимое iframe как новую страницу.Или, возможно, заменяет содержимое страницы содержимым iframe.
Я почти уверен, что это ошибка Webkit, и я не знаю, возможно ли это исправить.
Редактировать: оказывается, что возможно исправление:
$('#captcha-form script').remove();
'captcha-form' - это идентификатор формы, содержащей капчу.Удалите теги сценариев, чтобы сценарии не выполнялись во второй раз, когда Safari повторно отображает их после их перемещения в jQuery.Обработчики событий, созданные сценарием, отсутствуют в тегах сценария, поэтому они сохраняются.
Я думаю, что Safari повторно выполняет javascript при повторном отображении тегов.И все, что в модальном диалоге, перерисовывается при открытии диалога.Кроме того, я подозреваю, что после повторного рендеринга document.write, используемый recaptcha, запутается в том, где он находится, и запутается.