这是我第一次在 stackoverflow 上发帖。
我的问题很简单(我认为)。我的任务是允许用户使用 Facebook、Google Plus、LinkedIn 和 Twitter 进行注册。现在,我想要做的是当用户单击社交网络按钮时,它会将他们重定向到注册页面,并带有一个标志,该标志确定他们想要使用哪个社交网络。这里没问题。
我想根据他们选择的社交网络动态加载每个 API。
动态加载 Google JS API 时出现问题。此处的示例以简单的方式加载 client.js。如果我遵循示例代码,我没有问题。但我想动态加载它。
我尝试使用 $.ajax、$.getScript,甚至尝试将脚本添加到页面中,就像异步调用 Google Analytics 一样。以上都没有奏效。我的回调函数不会一直被调用。此外,如果我从 $.ajax 和 $.getScript 的回调函数调用 setApiKey,gapi.client 为 NULL。我不知道下一步该做什么。
无效的代码:
(function () {
var gpjs = document.createElement('script'); gpjs.type = 'text/javascript'; gpjs.async = false;
gpjs.src = 'https://apis.google.com/js/client.js?onload=onClientLoadHandler';
var sgp = document.getElementsByTagName('script')[0]; sgp.parentNode.insertBefore(gpjs, sgp);})();
使用 $.getScript
$.getScript("https://apis.google.com/js/client.js?onload=onClientLoadHandler", function () {
console.log("GP JS file loaded.");
SetKeyCheckAuthority();});
使用 $.ajax
$(document).ready(function () {
$.ajax({
url: "https://apis.google.com/js/client.js?onload=onClientLoad",
dataType: "script",
success: function () {
console.log("GP load successful");
SetKeyCheckAuthority();
},
error: function () { console.log("GP load failed"); },
complete: function () { console.log("GP load complete"); }
});});
我可以知道动态调用这个js文件的正确方法是什么吗?任何帮助,将不胜感激。谢谢你。