我有一个使用 reCAPTCHA 来过滤机器人的网络表单。该表单有一个<script>
标记,用于在<iframe>
中加载验证码质询。如果此脚本无法加载,则不会显示验证码质询,也无法发送帖子。
有什么方法可以检测脚本是否已加载,以便我可以关闭此功能吗?
答案 0 :(得分:5)
将load
事件附加到指向reCAPTCHA的script
元素。
var script = document.createElement("script");
script.addEventListener("load", function() {
// Script has loaded.
});
script.src = "/path/to/recaptcha.js";
document.body.appendChild(script);
答案 1 :(得分:2)
您可能会找到一种方法来进行检测,但我不推荐它,因为它会破坏验证码的目的。计算机/机器人很容易使脚本无法加载。主机文件条目可以解决问题。
也可以制作一个脚本,只对失败的加载案例执行处理,从而绕过验证码。
答案 2 :(得分: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.
});
}