javascript - Google Share 按钮动态设置数据预填充文本

标签 javascript jquery google-plus google-plus-one share-button

我目前有一个网站,其中包含我正在创建的社交网络小部件上的 Google 共享按钮(以及 Facebook 和 Twitter)。我想做的是能够在文本区域字段中输入一些文本,然后按“发送”按钮,文本就会共享到 Google+ 用户的墙(我已经可以使用 Facebook 和 Twitter 帖子)。现在我知道 Google+ 的共享按钮有一个名为“data-prefilltext”的字段,这就是我尝试使用文本区域中的消息设置的字段。当我按下“发送”按钮时,我可以看到“data-prefilltext”字段值发生变化,但在弹出窗口中,我没有看到文本变化。下面是代码:

HTML:

<div id="googleplus-selector" title="App is what's new! Share it with your circles in Google+"
    class="social-networking-icons g-interactivepost"
    data-contenturl="http://plus.google.com/pages/"
    data-contentdeeplinkid="/pages"
    data-clientid="clientid.apps.googleusercontent.com"
    data-scope="https://www.googleapis.com/auth/youtube.readonly"
    data-cookiepolicy="single_host_origin"
    data-prefilltext="Share App with your circle of friends now!"
    data-calltoactionlabel="TRY_IT"
    data-calltoactionurl="http://plus.google.com/pages/"
    data-calltoactiondeeplinkid="/pages/create"
    data-href="http://mysiteurl">
        <div class="widget-mask"></div>
</div>

Javascript/jQuery:

var textElement = $('#social-message-text');
var text = textElement.val();
$('#google-plus-share-button').attr('data-prefilltext', text);

正如我所说,在检查 Firebug 或 Google 开发者控制台中的元素时,我可以看到属性值的变化,但是当打开 Google Share 弹出窗口时,文本中的变化不会反射(reflect)出来。

任何帮助将不胜感激,因为我现在有点困惑。提前感谢大家。

最佳答案

我也遇到了同样的问题。经过长时间的努力,我找到了解决方案。我正在与你分享答案。

<html>
  <head>
    <title>Share Demo: Deferred execution with language code</title>
    <link rel="canonical" href="http://www.example.com" />
  </head>
  <body>
  <script>
  window.___gcfg = {
            lang: 'en-US',
            parsetags: 'explicit'
          };
  </script>
  <script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>
    <div id ="sharePost">Share</div>
 <script>
     (function() {
           var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
           po.src = 'http://apis.google.com/js/client:plusone.js';
           var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
         })();
     var options = {
                contenturl: 'http://www.google.com',
                contentdeeplinkid: '/pages',
                clientid: 'xxxxxxxxxxxxx.apps.googleusercontent.com',
                cookiepolicy: 'single_host_origin',
                prefilltext: 'Hai happy friday',
                calltoactionlabel: 'INVITE',
                calltoactionurl: 'http://www.google.com'
              };
              // Call the render method when appropriate within your app to display
              // the button.
              gapi.interactivepost.render('sharePost', options);

      </script>
  </body>
</html>

当您从ajax获得响应时,您必须在ajax响应后再次调用google并共享js文件。

关于javascript - Google Share 按钮动态设置数据预填充文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22841523/

相关文章:

jquery - 将复选框添加到 jquery 数据表

ios - Google Plus 共享显示无效地址错误 ios

google-plus - 从 Google+ SDK 获取流?

javascript - imacros 单击新的 google plus 共享按钮

单击 DIV 或其子项时的 Jquery Draggable

javascript - Facebook Flux 文档指出有 "no two-way data bindings"- 这是否意味着它所说的?

javascript - NestJS:动态模块的缺点?

javascript - 如何使所有类别的垂直子菜单容器位置相同

javascript - 如何使用 jQuery 删除跨度数值的 25%?

javascript - 匿名函数中的变量范围