2

訪問者がすでにページを推奨している場合、訪問者から Google+ ボタンを非表示にするにはどうすればよいですか。クリックした後にのみ非表示にするのではなく、ユーザーが次にページにアクセスしたときにボタンを非表示のままにしたい.

4

2 に答える 2

3

このようにボタンを非表示にすると、ユーザーが必要に応じて +1 を削除できなくなり、ユーザー エクスペリエンスが低下する可能性があります。美的な理由で非表示にしている場合、それは理解できます。たとえば、メッセージを表示してから、Google + ブランドGoogle+ ボタン ポリシーに従って別のボタンを表示したい場合などです。

そうしたい場合は、コールバックを使用して、ユーザーのマシンに Cookie を配置できます。次のデモは、完全な実装を示しています。

<html itemscope itemtype="http://schema.org/Article">
  <title>Demo: Hiding +1 after first click</title>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <head>

  </head>
  <body>
    <div id="pluscontainer"></div>
    <h1>Demo: Plus button here</h1>
    <p>
      <span id="plusButton" style="display:none">
        <g:plusone size="tall" callback='cookieAdd'></g:plusone>
      </span>
      <span id="plusMessage" style="display:none;" >
        You have already +1'd this page, click <button onClick='cookieDrop();'>here</button>
        to reshow the button
      </span>
    </p>
  </body>

<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);
    if (document.cookie != undefined && document.cookie.indexOf('enrolled=1') > -1){
      // User +1'd
      $('#plusButton').hide();
      $('#plusMessage').show();
    }else{
      // User hasn't +1'd
      $('#plusButton').show();
      $('#plusMessage').hide();
    }
  })();

  // Remove the cookie (show +1 button)
  function cookieDrop(){
    document.cookie = 'enrolled=0';
    $('#plusMessage').hide();
    $('#plusButton').show();
  }

  // Add the cookie (hide +1 button)
  function cookieAdd(state){
    if (state.state == 'on'){
      document.cookie = 'enrolled=1;expires=0';
      $('#plusMessage').show();
      $('#plusButton').hide();
    }
  }
</script>
</html>
于 2013-05-21T02:02:57.510 に答える