I have the same problem, though only in Safari (presumably Chrome too). It works fine in Firefox. It has nothing to do with Ruby (I use Grails), and the problem occurs with all jQuery popups (I've tried blockUI, SimpelModal and ThickBox).
As far as I can tell, for some reason when jQuery moves an iframe (which is what ReCaptcha is) in the domtree, Webkit decides to load the iframe content as a new page. Or maybe replaces the page content with the iframe content.
I'm pretty sure it's a Webkit bug, and I have no idea if there is a fix possible.
編集:可能な修正があることがわかりました:
$('#captcha-form script').remove();
「captcha-form」は、キャプチャを含むフォームの ID です。スクリプト タグを削除して、jQuery がスクリプトを移動した後に Safari がそれらを再レンダリングするときに、スクリプトが 2 回実行されないようにします。スクリプトによって作成されたイベント ハンドラーは script タグに含まれていないため、存続します。
Safariはタグを再レンダリングするときにjavascriptを再実行すると思います。また、ダイアログが開いたときに、モーダル ダイアログ内のすべてが再レンダリングされます。さらに、再レンダリングされた後、recaptcha で使用される document.write がどこにあるのか混乱してめちゃくちゃになっているのではないかと思います。