google-plus - plusone.js 有时在 chrome 上是 "pending"?

标签 google-plus

有时,当我尝试使用 Chrome (22.0....) 时:

<script src="http://apis.google.com/js/plusone.js" type="text/javascript"></script>

它失败了。我的意思是,如果我检查网络控制台,它会显示“Pending...”,并且我的 .load() 事件被卡住了。

为什么?我该如何解决?

也试过:

<script type="text/javascript">
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

但它是一样的...

最佳答案

我在您链接的页面的源代码中的任何地方都没有看到为 +1 按钮定义的 HTML 容器。我在页面上看到了您引用的第一个脚本,但您的页面似乎丢失了:

<!-- Place this tag where you want the +1 button to render. -->
<div class="g-plusone" data-annotation="inline" data-width="300"></div>

第二个脚本片段用于异步加载(首选),您引用的脚本还需要您插入相同类型的 HTML 容器。

您可以使用 +1 button configuration tool 生成要包含在页面中的代码.

[更新] g-plusone 元素显然是由 jQuery 动态注入(inject)的,jQuery 的加载时间与 +1 按钮自己的加载处理程序不同,这解释了为什么有时它可能会显示。在这种情况下,您需要使用 parseTags: 显式选项:

<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {parsetags: 'explicit'}
</script>

然后在你自己的 JavaScript 注入(inject) g-plusone div 之后,你必须调用:

gapi.plusone.go();

这将在启动时显式呈现页面上的所有 +1 按钮。

关于google-plus - plusone.js 有时在 chrome 上是 "pending"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12929836/

相关文章:

google-api - Google+ 有公共(public) API 吗?

javascript - 如何建立像google+一样的拖放圈子系统

ios - GPPSignInDelegate 的实现是否必须是 ViewController 或 AppDelegate?

javascript - Google Plus API - key 无效

c++ - 如何在已经使用适用于 C++ 的 Google Play 游戏服务 SDK 实现排行榜的情况下创建 Google+ Plus One 按钮?

使用 AWS Cognito、Google+ OAuth 和 AccountManager 的 Android 应用程序

c# - 如何获取Google+的帖子数据(点赞-分享-评论)?

Android - 使用登录屏幕代替自动登录的 Google 登录

android - 在 Android 应用程序中添加 Google +1 按钮不起作用

java - 无法从 Google Plus API 获取数据