小编Jan*_*toy的帖子

如何动态加载google client.js

这是我第一次在 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);})();
Run Code Online (Sandbox Code Playgroud)

使用 $.getScript

$.getScript("https://apis.google.com/js/client.js?onload=onClientLoadHandler", function () {
console.log("GP JS file loaded.");
SetKeyCheckAuthority();});
Run Code Online (Sandbox Code Playgroud)

使用 $.ajax

$(document).ready(function () {
$.ajax({
    url: "https://apis.google.com/js/client.js?onload=onClientLoad",
    dataType: "script",
    success: function () …
Run Code Online (Sandbox Code Playgroud)

javascript api jquery dynamic

5
推荐指数
1
解决办法
1534
查看次数

标签 统计

api ×1

dynamic ×1

javascript ×1

jquery ×1