0

当点击加一按钮时,我使用了谷歌加一按钮上的回调属性来执行一个动作。这工作正常。我的问题是,当我单击加一按钮然后关闭页面并返回时,该按钮仍被单击(红色)但我的自定义操作未执行。有没有办法查看是否有人在之前的访问中点击了加号按钮?我想查看按钮的状态,而不需要用户在按钮上进行交互。我的代码如下

<script type="text/javascript">
function customCallback(jsonParam) {
var Special = document.getElementById('special');

if(jsonParam.state == "on"){

     $('.test').show();
   }
   else{

       $('.test').hide();
        }
}
window.onload = customCallback;
</script>

然后我渲染我的按钮

<g:plusone callback ="customCallback"></g:plusone>

如果我单击按钮,代码将按预期执行并显示 .test div。如果我然后返回页面,则 .test div 将再次隐藏。有人有什么想法吗?

谢谢

4

1 回答 1

0

您可以从您的站点跟踪按钮的状态。唯一的缺点是当用户返回您的页面时,按钮的外部点击不会注册。

为回调添加一个处理程序以在单击按钮时设置 cookie:

<div class="g-plusone" data-callback="cookieAdd" data-annotation="inline" data-width="300"></div>

<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>
<script type=text/javascript>
function cookieAdd(args){
  if (args.state == "on"){
    document.cookie = 'enrolled=1;expires=0';
  }else{
    document.cookie = 'enrolled=0;expires=0';
  }
}
</script>

页面加载时,可以检查用户是否点击了按钮,如下:

  <script>
    if (document.cookie != undefined && document.cookie.indexOf('enrolled=1') > -1){
      // button has already been clicked "on"
    }
  </script>

我不确定你在做什么,但请注意你没有违反Google+ 按钮政策

于 2013-03-30T17:02:43.723 回答