5

reCAPTCHAを使用してロボットを除外するWebフォームがあります。フォームには<script>、キャプチャチャレンジをにロードするタグがあります<iframe>。このスクリプトの読み込みに失敗すると、キャプチャチャレンジは表示されず、誰も投稿を送信できなくなります。

スクリプトがロードされているかどうかを検出して、この機能を自分の側からオフにできる方法はありますか?

4

3 に答える 3

5

reCAPTCHAを指す要素にloadイベントを添付します。script

var script = document.createElement("script");

script.addEventListener("load", function() {
   // Script has loaded.
});

script.src = "/path/to/recaptcha.js";

document.body.appendChild(script);
于 2012-05-07T02:49:01.947 に答える
2

おそらくその検出を行う方法を見つけることができますが、キャプチャの目的を損なうため、お勧めしません。コンピュータ/ロボットは、スクリプトを簡単にロードしないようにする可能性があります。ホストファイルエントリがそのトリックを実行します。

ロードに失敗したケースの処理を実行するだけのスクリプトを作成して、キャプチャを回避することもできます。

于 2012-05-07T02:48:48.957 に答える
1

script.addEventListenerは、IE8およびIE7では機能しません。そのためにあなたはする必要があります

  if (!script.addEventListener) {
        script.attachEvent("onload", function(){
        // script has loaded in IE 7 and 8 as well.
});
    }
    else
    {
    script.addEventListener("load", function() {
       // Script has loaded.
    });
}
于 2013-02-08T06:28:27.430 に答える