为什么getScript无法使用外部脚本?

时间:2015-08-30 21:25:08

标签: javascript jquery recaptcha

我正试图让google recaptcha脚本加载

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

如果我将其放入<script>标签并内嵌网页,它会正确地使用验证码,而如果我包含getScript,则在仍在同一域上托管的外部.js文件中使用javascript从recaptcha没有加载。这是脚本本身还是getScript的问题?

1 个答案:

答案 0 :(得分:0)

当'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 Captcha规范,但我认为这可行。您只需要找到在上下文中执行的脚本URL。提示:URL可能不会在其中说'onload = onloadCallback'。

相关问题