Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法检测外部javascript文件是否已完全加载?_Javascript - Fatal编程技术网

有没有办法检测外部javascript文件是否已完全加载?

有没有办法检测外部javascript文件是否已完全加载?,javascript,Javascript,我有一个web表单,它使用reCAPTCHA过滤掉机器人。表单有一个标记,用于在中加载验证码质询。如果此脚本加载失败,则不会出现验证码质询,并且没有人能够发送帖子 是否有任何方法可以检测脚本是否已加载,以便从我的角度关闭此功能?您可能会找到一种方法进行检测,但我不建议这样做,因为它会破坏验证码的目的。计算机/机器人可以轻松地使脚本不加载。一个hosts文件条目就可以做到这一点 还可以创建一个脚本,只执行对加载失败案例的处理,从而绕过验证码。将load事件附加到指向reCAPTCHA的script

我有一个web表单,它使用reCAPTCHA过滤掉机器人。表单有一个
标记,用于在
中加载验证码质询。如果此脚本加载失败,则不会出现验证码质询,并且没有人能够发送帖子


是否有任何方法可以检测脚本是否已加载,以便从我的角度关闭此功能?

您可能会找到一种方法进行检测,但我不建议这样做,因为它会破坏验证码的目的。计算机/机器人可以轻松地使脚本不加载。一个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是在客户端执行的,而不是服务器端。我同意你的看法。谢谢:)