我有一个使用reCAPTCHA过滤掉机器人的网络表单。该表单有一个<script>
标签,可以将验证码质询加载到<iframe>
. 如果此脚本无法加载,则验证码挑战将不会出现,并且没有人能够发送帖子。
有什么方法可以检测脚本是否已加载,以便我可以从我这边关闭此功能?
我有一个使用reCAPTCHA过滤掉机器人的网络表单。该表单有一个<script>
标签,可以将验证码质询加载到<iframe>
. 如果此脚本无法加载,则验证码挑战将不会出现,并且没有人能够发送帖子。
有什么方法可以检测脚本是否已加载,以便我可以从我这边关闭此功能?
将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);
您可能会找到一种方法来进行检测,但我不推荐它,因为它违背了验证码的目的。计算机/机器人可以轻松地使脚本无法加载。主机文件条目可以解决问题。
也可以制作一个脚本,只执行您对加载失败案例的处理,从而绕过您的验证码。
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.
});
}