有没有一种方法可以检测外部JavaScript文件是否完全加载?

5
我有一个使用reCAPTCHA来过滤机器人的网络表单。该表单中有一个<script>标签,用于在<iframe>中加载验证码挑战。如果此脚本无法加载,则验证码挑战将不会出现,也没有人能够发送帖子。
是否有任何方法可以检测脚本是否已加载,以便我可以从我的角度关闭此功能?

我建议你使用http://requirejs.org/,但我认为你正在寻找一个快速的解决方案。 - wizztjh
3个回答

5

将指向reCAPTCHA的


请您能否详细说明一下您的答案呢?谢谢。 - Question Overflow

2

你可能可以找到一种方法来进行检测,但我不建议这样做,因为这会使验证码失去意义。计算机/机器人可以轻松地使脚本无法加载。添加hosts文件条目可以解决这个问题。

还可以编写一个脚本,只需执行处理加载失败情况的代码,从而规避您的验证码。


@BenHuh 如果你有一段代码可以告诉你的服务器何时不需要验证码(因为它无法加载),那么任何人都可以编写一个脚本,无论验证码是否已加载,都可以执行该代码。然后,验证码将不再需要,该用户可以将该修改添加到任何机器人中,如果他们想滥用你的表单。 - Paul
哦,是的,因为JavaScript是在客户端执行而不是服务器端。我同意你的观点。谢谢 :) - Question Overflow

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.
    });
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接