为什么 getScript 在外部脚本中不起作用?

Why getScript does not work from an external script?

我正在尝试加载 google recaptcha 脚本

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

如果我将它放入 <script> 标签并内联网页,它会正确加载验证码,而如果我包含 getScript,则在仍然托管在同一域中的外部 .js 文件中来自 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);
})();

我不熟悉 google 验证码规范,但我认为这可行。您只需要找到在上下文中执行的脚本 url 即可。提示:URL 可能不会在其中显示 'onload=onloadCallback'。