首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步加载Google +1小部件时出现问题

异步加载Google +1小部件时出现问题
EN

Stack Overflow用户
提问于 2011-06-02 05:16:36
回答 7查看 4K关注 0票数 5

我在正在开发的站点上有几个小部件,我从一个javascript文件异步加载它们,这样就不会影响DOM的完成。

例如,我使用Digg和Buzz小部件执行此操作,它工作得很好:

代码语言:javascript
复制
// Buzz Share
function buzzShare() {
    $jQ('.sharebox').append('<div class="widget"><a title="Post to Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count"></a></div>');
    $jQ.getScript('http://www.google.com/buzz/api/button.js');
}
// Digg Share
function diggShare() {
    $jQ('.sharebox').append('<div class="widget"><a class="DiggThisButton DiggMedium"></a></div>');
    $jQ.getScript('http://widgets.digg.com/buttons.js');
}

当涉及到新的Google +1小部件时,同样的逻辑就不起作用了:

代码语言:javascript
复制
// PlusOne Share
function plusOneShare() {
    $jQ.getScript('http://apis.google.com/js/plusone.js');
    $jQ('.sharebox').append('<div class="widget"><div class="g-plusone" data-size="tall" data-count="true"></div></div>');
}

我尝试同时使用HTML5标签和<g:plusone></g:plusone>。两者都不起作用。

下面是刚刚启动的服务的文档:http://code.google.com/apis/+1button/

我还注意到,如果将脚本直接嵌入到HTML中,您可以执行以下操作。

代码语言:javascript
复制
 <script type="text/javascript" src="https://apis.google.com/js/plusone.js">
      {"parsetags": "explicit"}
    </script>

有没有办法在jQuery .getScript中使用{"parsetags": "explicit"}参数

另外,我还尝试在plusOneShare函数的第一行和第二行之间切换,同样也不起作用。

谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-05 00:28:06

我在问题中描述的方法非常有效。如果我没弄错的话,谷歌的这一端只存在某种bug。在他们宣布这个功能几个小时后,我正试图让它正常工作。大约两天后,它现在可以完美地工作了。

.getScript方法是通过AJAX加载+1的好方法。

票数 1
EN

Stack Overflow用户

发布于 2011-06-03 01:26:07

您使用的是哪种浏览器?下面的整页示例适用于我:

代码语言:javascript
复制
<html>
  <head>
    <title>jQuery Dynamic load test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        $.getScript('https://apis.google.com/js/plusone.js');
        $('.sharebox').append('<div class="widget"><div class="g-plusone" data-size="tall" data-count="true"></div></div>');
      });
    </script>
  </head>
  <body>
    Hello world!
    <div class="sharebox"></div>
  </body>
</html>
票数 2
EN

Stack Overflow用户

发布于 2011-06-15 04:50:27

我最终做了这样的事情来支持参数传递给+1脚本:

代码语言:javascript
复制
var hd = document.getElementsByTagName('head')[0];
var scr = document.createElement('script');
scr.type ='text/javascript';
scr.async = true;
scr.innerHTML = "{lang: 'es-419'}"; // Magic! :)
scr.src = "https://apis.google.com/js/plusone.js";
hd.appendChild(scr);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6207815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档