加载Google Plus One按钮

时间:2013-03-27 17:40:44

标签: javascript html google-plus google-plus-one

我在Google的加一个按钮上使用了回调属性,在点击加号按钮时执行操作。这很好用。我的问题是,当我单击加号按钮然后关闭页面并返回时,仍然单击按钮(红色)但我的自定义操作未执行。有没有办法看看有人在上次访问时是否已经点击了加号按钮?我希望看到按钮的状态,而不需要按钮上的用户交互。我的代码如下

<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。有人有任何想法吗?

谢谢

1 个答案:

答案 0 :(得分: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+ buttons policy