5

我有一个使用reCAPTCHA过滤掉机器人的网络表单。该表单有一个<script>标签,可以将验证码质询加载到<iframe>. 如果此脚本无法加载,则验证码挑战将不会出现,并且没有人能够发送帖子。

有什么方法可以检测脚本是否已加载,以便我可以从我这边关闭此功能?

4

3 回答 3

5

load事件附加到script指向 reCAPTCHA 的元素。

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 回答