有没有办法检测外部javascript文件是否已完全加载?
我有一个web表单,它使用reCAPTCHA过滤掉机器人。表单有一个有没有办法检测外部javascript文件是否已完全加载?,javascript,Javascript,我有一个web表单,它使用reCAPTCHA过滤掉机器人。表单有一个标记,用于在中加载验证码质询。如果此脚本加载失败,则不会出现验证码质询,并且没有人能够发送帖子 是否有任何方法可以检测脚本是否已加载,以便从我的角度关闭此功能?您可能会找到一种方法进行检测,但我不建议这样做,因为它会破坏验证码的目的。计算机/机器人可以轻松地使脚本不加载。一个hosts文件条目就可以做到这一点 还可以创建一个脚本,只执行对加载失败案例的处理,从而绕过验证码。将load事件附加到指向reCAPTCHA的script
标记,用于在
中加载验证码质询。如果此脚本加载失败,则不会出现验证码质询,并且没有人能够发送帖子
是否有任何方法可以检测脚本是否已加载,以便从我的角度关闭此功能?您可能会找到一种方法进行检测,但我不建议这样做,因为它会破坏验证码的目的。计算机/机器人可以轻松地使脚本不加载。一个hosts文件条目就可以做到这一点
还可以创建一个脚本,只执行对加载失败案例的处理,从而绕过验证码。将
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);
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.
});
}
我建议您使用,但我认为您正在寻找一种快速解决方案。请详细说明您的答案。谢谢。@BenHuh如果你有代码告诉你的服务器什么时候不需要验证码(因为无法加载),那么任何人都可以编写一个脚本,不管是否加载了验证码,都可以简单地执行该代码。然后,验证码就不再需要了,如果用户想滥用你的表单,他们可以将修改添加到任何机器人上。哦,是的,因为javascript是在客户端执行的,而不是服务器端。我同意你的看法。谢谢:)