ページを戻すときに画像をリロードするためにさまざまな方法を試しましたが、何を試しても同じ画像が得られます。いくつかの方法は近いものでした (画像が更新されていることはわかりますが、recaptcha サーバーが応答し、前の画像が再び表示されます)。戻るボタンをクリックしたときに画像をリロードするためのトリックはありますか? ユーザーがセキュリティ ワードを間違って入力した場合に、すべてのフォーム情報を再入力する必要はありません。また、すべての情報を保存することも避けたいと思います。このページは従来の ASP であるため、jquery または ajax メソッドが進むべき道であるか、そうであると想定します。前もって感謝します。
5 に答える
この問題を解決する簡単なハックを見つけました。recaptcha のあるページで、次の jquery を追加します。
<script>
$(document).ready(function(){
$("#form_div").Show();
);
</script>
「#form_div」を、フォームを格納する div に置き換えるだけです。ユーザーが戻るボタンを押すと、recaptcha 画像が更新されます。それはあらゆる意味でハックですが、私にとってはうまくいきました。
これは、Chrome で機能する簡単な方法です。
以下のように HTML 本文にリロード機能を追加します。
<body onload="javascript:Recaptcha.reload()">
またreCaptcha
、ユーザーが [戻る] ボタンをクリックすると、Chrome で画像が自動的に再読み込みされます。
編集:履歴APIの回答を削除して、可能なAJAXの回答を表示しました。
jQuery を使えば、驚くほど簡単です。
$(window).on('load',function(){
$('#RecaptchaContainer').load('/path/to/recaptcha.php',function(){
// any javascript you need to perform on the recaptcha
});
});
そのファイルにすべての recaptcha HTML を含めることができますが、そのコールバック関数内にすべての JavaScript を含めることができます。
次のコード行を使用して、正しく更新することができました。
body onLoad="javascript:Recaptcha.reload()"
しかし、この方法は適切な解決策ではありません。フォーカスが recaptacha テキスト フィールドに設定されるためです。これは、最初にページに入ったときでも、ウィンドウが recaptacha フィールドがあるページの下部までスクロールすることを意味します (ページに「戻る」を押したときのみ)。この解決策は機能しますが、recaptacha 入力フィールドに焦点を当てない解決策を見つけることをお勧めします。
から更新メソッドを呼び出しますwindow.onload
。
window.onload = function(){ /* refresh here */ }