Twitter的推文按钮是否有回调?

时间:2011-02-09 16:41:41

标签: jquery api twitter callback

有没有办法在Twitter的推文按钮上注册回调?我希望能够跟踪我网站上的哪些特定用户发布了链接。我无法添加onClick事件,因为它是一个跨域iFrame。还有其他想法吗?

我见过one way to do it,但似乎不可靠。 Their documentation没有提及任何内容,因此我正在寻求解决方案的帮助。

6 个答案:

答案 0 :(得分:46)

Twitter loadedrenderedresizetweetfollowretweet,{{1} Web Intent events behavior was changed }和like

click

2015年秋季的Example loading widgets.js由于事件发生后回调不可靠而发生。

  

现在,当用户在您的页面中调用操作时,而不是在操作完成后,将触发它们。

{{3}}:

twttr.events.bind(
  'tweet',
  function (event) {
    // Do something there
  }
);

答案 1 :(得分:23)

我刚刚实现了推文回调事件。

有关Twitter回调事件的更多信息   - Twitter Web Intents
  - Web Intents Javascript Events

Javascript回调

$.getScript("http://platform.twitter.com/widgets.js", function(){
   function handleTweetEvent(event){
     if (event) {
       alert("This is a callback from a tweet")
     }
   }
   twttr.events.bind('tweet', handleTweetEvent);        
 });

推文按钮:

 <a href="http://twitter.com/intent/tweet?url=http://test.com;via=stack">twitter</a>

答案 2 :(得分:4)

如果您加载Twitter Widgets JS,则可以将回调函数绑定到tweet事件。请参阅以下代码:

<a href="https://twitter.com/intent/tweet?url=http://yoursite.com/about&text=Message">Twitter</a>

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

//Once twttr is ready, bind a callback function to the tweet event
twttr.ready(function(twttr) {       
    twttr.events.bind('tweet', function (event) {
        console.log('tweet, tweet');
    });
});
</script>

答案 3 :(得分:3)

是的,有一个回调函数。对于自定义Twitter按钮也是如此。 你可以在这里找到它:https://dev.twitter.com/discussions/671

答案 4 :(得分:0)

function loguser( event ) {
    if ( event ) {
        alert( 'Tweeted' );
        console.log( event );
    }
}

window.twttr = (function (d,s,id) {
    var t, js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
    js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
    return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
    }(document, "script", "twitter-wjs"));

twttr.ready(function (twttr) {
    twttr.events.bind('tweet', loguser);
});

Working Example

答案 5 :(得分:-3)

<a href="https://twitter.com/IamAnessaReyes" class="twitter-follow-button" data-show-count="false">Follow @IamAnessaReyes</a>
<script>!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");</script>