javascript - 为什么 getScript 不能从外部脚本运行?

标签 javascript jquery recaptcha

我正在尝试加载 google recaptcha 脚本

$.getScript("https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit");

如果我把它放入 <script>标签并内联网页,它会正确加载验证码,而如果我在外部 .js 内包含 getScript,文件仍然托管在同一域中,来自 recaptcha 的 javascript 未加载。这是脚本本身的问题还是 getScript 的问题?

最佳答案

您调用的脚本会在“onload”事件触发时呈现。

(function() {
  if (!window['___grecaptcha_cfg']) { 
    window['___grecaptcha_cfg'] = {}; 
  };
  if (!window['___grecaptcha_cfg']['render']) {


    // If the render time isn't set, set it to (window) onload //

    window['___grecaptcha_cfg']['render'] = 'onload';      


  };
  window['__google_recaptcha_client'] = true;
  var po = document.createElement('script'); 
  po.type = 'text/javascript'; 
  po.async = true;po.src = 'https://www.gstatic.com/recaptcha/api2/r20150826120751/recaptcha__en.js';
  var s = document.getElementsByTagName('script')[0]; 
  s.parentNode.insertBefore(po, s);
})();

我不熟悉谷歌验证码规范,但我认为这可以工作。您只需要找到在上下文中执行的脚本 url。提示:URL 中可能不会显示“onload=onloadCallback”。

关于javascript - 为什么 getScript 不能从外部脚本运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32301301/

相关文章:

jquery - NextGEN 画廊幻灯片显示错误

flask - Flask-WTF 是否支持 reCAPTCHA v3?

javascript - 如何对 vcRecaptchaService.execute() 使用 .then 方法?

javascript - 第一个 ajax 调用非常慢,后续调用运行很快——为什么?

javascript - 使用 PHP 验证查找恶意 PDF 文件?

jquery - 为使用 jquery 选择器添加的每个元素提供单独的边框

javascript - IE6 不解析加载的 JavaScript 文件(Google 托管的 Recaptcha)

javascript - Google Maps Draw -- 通过拖动绘制线或多边形

JavaScript 为数组中不存在的键添加零

javascript - 如何为不同的输入设置不同的自定义有效性