reCAPTCHAを使用してロボットを除外するWebフォームがあります。フォームには<script>
、キャプチャチャレンジをにロードするタグがあります<iframe>
。このスクリプトの読み込みに失敗すると、キャプチャチャレンジは表示されず、誰も投稿を送信できなくなります。
スクリプトがロードされているかどうかを検出して、この機能を自分の側からオフにできる方法はありますか?
reCAPTCHAを使用してロボットを除外するWebフォームがあります。フォームには<script>
、キャプチャチャレンジをにロードするタグがあります<iframe>
。このスクリプトの読み込みに失敗すると、キャプチャチャレンジは表示されず、誰も投稿を送信できなくなります。
スクリプトがロードされているかどうかを検出して、この機能を自分の側からオフにできる方法はありますか?
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);
おそらくその検出を行う方法を見つけることができますが、キャプチャの目的を損なうため、お勧めしません。コンピュータ/ロボットは、スクリプトを簡単にロードしないようにする可能性があります。ホストファイルエントリがそのトリックを実行します。
ロードに失敗したケースの処理を実行するだけのスクリプトを作成して、キャプチャを回避することもできます。
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.
});
}