我正在尝试加载 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/