1

想法:加载动态内容后,在鼠标悬停时,我正在尝试呈现谷歌共享按钮,就像官方谷歌开发者网站上所说的那样。

我正在使用的代码是:

gapi.plus.render(div);

事实:

  • 如果我将 plus 更改为 plusone,它会呈现 google plus 按钮而不是共享。(意味着:脚本加载)
  • 如果我删除 {"parsetags": "explicit"},按钮会加载(但不会在悬停时加载)

问题: 分享按钮无法加载。

使用 plus.render 和 plusone.render 调试链接:

  1. http://romanlosev.igloro.info/googleshare.php?load=plusone( plusone - 工作,但 plus+ 按钮加载)
  2. http://romanlosev.igloro.info/googleshare.php?load=plus(加 - 不起作用)
4

1 回答 1

7

StackOverflow 上有一个类似的问题。

您需要做的是调用共享按钮的显式渲染方法。用以下代码替换选择 div 的函数将延迟屏幕上共享对象的渲染。

$("#clickme").click(function()
{
  gapi.plus.go();
});

要呈现单个按钮,您必须传递一个带有 action 参数设置为共享的对象,例如:

gapi.plus.render("plusOne", {action: "share"});

以下是一个更完整的示例,它执行异步脚本加载并呈现各种共享目标,在此处可见:

<html>
<body>
  <p>
  <div data-action="share" class="g-plus" id="plusOne"></div>
  <button onClick="gapi.plus.render('plusOne', getParamBag('https://www.google.com'))"></button>
  </p>
  <p>
  <div data-action="share" class="g-plus" id="plusTwo"></div>
  <button onClick="gapi.plus.render('plusTwo', getParamBag('https://plus.google.com'))">  </button>
  </p>
  <p>
  <div data-action="share" class="g-plus" id="plusThree"></div>
  <button onClick="gapi.plus.render('plusThree', getParamBag('https://developers.google.com'))"></button>
  </p>
</body>
<script type="text/javascript">
  window.___gcfg = {
      lang: 'en-US',
      parsetags: 'explicit'
  };
  (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);
  })();
  function getParamBag(url){
    return {
      action: "share",
      href: url
    };
  }
</script>
</html>
于 2013-01-22T01:15:25.160 回答