перепросмотр в модальном окне (fancybox) - PullRequest
3 голосов
/ 30 августа 2010

Я пытаюсь загрузить форму через ajax в fancybox.Отлично работает, все отлично работает.

Я использовал плагин recaptcha (rails) и получил капчу на форме.Теперь, когда fancybox загружается, его перенаправляют на пустую страницу с только капчей.

Я предполагаю, что это некоторая проблема с iframe и модальным окном?

Кто-нибудь загружал recaptcha в формевнутри фантазии?помог бы мне, если бы вы могли указать мне пример ..

ценю вашу помощь ...

Ответы [ 4 ]

5 голосов
/ 11 апреля 2012

У меня была такая же проблема с fancybox.Я решил это с помощью API ajax recaptcha: https://developers.google.com/recaptcha/docs/display#AJAX

0 голосов
/ 23 апреля 2014

Простое решение для загрузки формы с помощью recaptcha через ajax в fancybox.

<%= recaptcha_tags ajax: true %> 
0 голосов
/ 27 августа 2013

, если кто-то все еще ищет простое решение, мне удалось получить recaptcha, работающий в fancybox, вызвав его как iframe

при вызове из селектора класса:

<script>
$(document).ready(function() {
     $(".example").fancybox({
          fitToView   : true,
          autoSize    : false,
          openEffect  : 'elastic',
          closeEffect : 'elastic'
     });
});
</script>

Тогда в вашем HTML

<a href="http://url.com/iframe" class="example fancybox.iframe>Captcha Fancybox</a>

Или, если вы запускаете fancybox программно, сделайте что-то вроде:

$.fancybox({
     width        : '520px',
     height       : '230px',
     autoSize     : false,
     openEffect   : 'elastic',
     closeEffect  : 'elastic',
     'href'       : 'http://www.url.cc',
     type         : 'iframe'
  });
0 голосов
/ 10 июня 2011

У меня такая же проблема, но только в 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, запутается в том, где он находится, и запутается.

...