2016-03-30 33 views
1

"Twitterで共有"機能を実行しています。私は共有ボタンを持っています。クリックすると、Twitterのウィジェットが開き、共有ボックスが表示されます。ウィジェットのTweetボタンを押すと、私のメッセージが私のtwitterタイムラインに投稿されます。つぶやきが成功した後、コールバック+ Twitterを実行します

コールバックを処理したいときに、私がうまくいじったら、ポップアップは表示されず、私のウェブサイトは次のページにリダイレクトされます。

私はIs there a callback for Twitter's Tweet Button?この質問を審査しましたが、私の要求に応じて働いていません。

Twitterはイベントを提供していますが、私たちのサイトに埋め込まれているTweetボタンで実行されます。私の次のコードを試みた:

<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.pinceladasdaweb.com.br/blog/" data-via="pinceladasdaweb" data-lang="pt" data-text="Pinceladas da Web">Tweetar</a> 

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")); 

twttr.ready(function (twttr) { 
twttr.events.bind('tweet', function() { 
    alert('Tweeted!'); 
}); 
}); 

})。

成功したツイートの後に次のページにリダイレクトする方法はありますか?

+0

どのコードを試していますか? – itzmukeshy7

+0

あなたはこれまでに試したことを分かち合いますか? – Rayon

+0

@ itzmukeshy7私はコードを追加しました、それを調べてください。 –

答えて

2

通常、ツイートのコールバックの方法や意図はありません。私はつぶやきからコールバックを作成するために以下のハックを使用しました:

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")); 

$(document).on('click','.twitter',function(){ 

    var tweetUrl = 'https://twitter.com/intent/tweet?url='+window.location.href; 
    var x = screen.width/2 - 700/2; 
    var y = screen.height/2 - 450/2; 
    var child = window.open(tweetUrl, "popupWindow", "width=600, height=400,left="+x+",top="+y); 
     child.focus(); 
     var timer = setInterval(checkChild, 1); 
     document.domain = 'example.com';  //Replace it with your domain 
     function checkChild() { 
     if(child.closed){ 
      clearInterval(timer); 
     } 
     if(child.window.closed){ //Code in this condition will execute after successfull post 
      //Do your stuff here 
      clearInterval(timer); 
     } 
     } 
}); 

<a class="twitter" href="javascript:void(0)">Tweet</a> 
+0

ええ、それは私のためにうまくいきます。ありがとう –

+0

私は自分のlocalhost上でそれをテストしていますが、//あなたのstuffコールバックを行い、 'child.window.closed'がnullで、' Uncaught TypeError:nullを返します 'という閉じたプロパティを読み取れません。 – Richardsondx

+0

上記のコードでいくつかの変更があり、現在はlocalhostでも動作します。 –

関連する問題