Событие Twitter JS привязано к фрагменту API - PullRequest
0 голосов
/ 05 октября 2018

ОБЩАЯ ИНФОРМАЦИЯ:

Используя JavaScript API Twitter , вы можете добавить скрипт в нижний колонтитул и выполнять такие действия, как ретвит, лайк, ответ и т. Д.

JS API:

  <script>
        window.twttr = (function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0],
            t = window.twttr || {};
          if (d.getElementById(id)) return t;
          js = d.createElement(s);
          js.id = id;
          js.src = "https://platform.twitter.com/widgets.js";
          fjs.parentNode.insertBefore(js, fjs);

          t._e = [];
          t.ready = function(f) {
            t._e.push(f);
          };

          return t;
        }(document, "script", "twitter-wjs"));
    </script>

Он также обеспечивает действие " callback ", как показано ниже:

twttr.events.bind(
  'like',
  function(event) {
   var likedTweetId = event.data.tweet_id;
  }
);

Что я пытаюсь сделать:

Для оптимизации Twitter также предоставляет фрагмент js с ограниченными зависимостями.

(function() {
  if (window.__twitterIntentHandler) return;
      var intentRegex = /twitter\.com\/intent\/(\w+)/,
      windowOptions = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes',
      width = 550,
      height = 420,
      winHeight = screen.height,
      winWidth = screen.width;

  function handleIntent(e) {
    e = e || window.event;
    var target = e.target || e.srcElement,
        m, left, top;

    while (target && target.nodeName.toLowerCase() !== 'a') {
      target = target.parentNode;
    }

    if (target && target.nodeName.toLowerCase() === 'a' && target.href) {
      m = target.href.match(intentRegex);
      if (m) {
        left = Math.round((winWidth / 2) - (width / 2));
        top = 0;

        if (winHeight > height) {
          top = Math.round((winHeight / 2) - (height / 2));
        }

        window.open(target.href, 'intent', windowOptions + ',width=' + width +
                                       ',height=' + height + ',left=' + left + ',top=' + top);
        e.returnValue = false;
        e.preventDefault && e.preventDefault();
      }
    }
  }

  if (document.addEventListener) {
    document.addEventListener('click', handleIntent, false);
  } else if (document.attachEvent) {
    document.attachEvent('onclick', handleIntent);
  }
  window.__twitterIntentHandler = true;
}());

Очевидно, что нет event привязывается к этому фрагменту.Мне было интересно, если кто-нибудь выяснил, как добавить привязки событий (например, / tweet / retweet / follow action) к нему, как указано выше?

Любые предложения будут высоко оценены.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...