plusone.js有时在chrome上“待定”?

时间:2012-10-17 08:09:21

标签: google-plus

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

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

失败了。我的意思是,如果我检查网络控制台,它会显示“待处理......”,并且我的.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 个答案:

答案 0 :(得分:2)

我没有在您链接的网页源中的任何位置看到+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生成要包含在您网页中的代码。

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

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

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

gapi.plusone.go();

启动时会明确呈现页面上的所有+1按钮。