Встраивание кнопки «Поделиться» в Твиттере (с JS и всем остальным) в шаблон «Усы»

Как я могу встроить кнопку «Поделиться» в Twitter (с JS и всем остальным) в шаблон «Усы»?

У меня проблема в том, что мое приложение AJAX не перезагружает страницу, а просто переключает представления на основе шаблонов усов. Я заметил, что функции, предоставляемые widjets.js, просто не включаются, потому что файлы JS загружаются только один раз за время жизни приложения и ищут теги, украшенные тегом «twitter» в DOM_READY. Это, однако, полностью исключает случаи, когда HTML будет отображаться из шаблона позже.

Я знаю, что могу использовать необработанную гиперссылку на Twitter и настроить ее так, чтобы она выглядела как кнопка, но это слишком примитивно.


person Preslav Rachev    schedule 16.03.2012    source источник


Ответы (2)


Вот решение, которое сработало для меня, используя шаблон внутри моего HTML-файла:

социальные.js:

$(function() {
  var socialFeeds = {
    twitter: {
      account: "your-twitter-account",
      script: function() {
        // twitter code goes here, minus the script tags
        !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");

        // in my case, I had to re-render the twitter button, see here:
        // http://stackoverflow.com/a/6536108/805003
        $.ajax({ url: 'http://platform.twitter.com/widgets.js', dataType: 'script', cache:true});
      }
    }
  }

  $.Mustache.addFromDom('social-template');
  $('#social').mustache('social-template', socialFeeds);
}

index.html:

    <script id="social-template" type="text/html">
      <div id='social'>
          <p>Twitter button:</p>

          <a href="https://twitter.com/share" class="twitter-share-button" data-via="{{twitter.account}}">Tweet</a>
          {{ twitter.script }}
      </div>
    </script>
person manafire    schedule 16.10.2012

Вы можете вызывать функции инициализации не в document ready, а из представлений, в которых вы хотите, чтобы кнопка Twitter отображалась.

person Codrin Eugeniu    schedule 16.03.2012