1

タイトル自体にすべてがあります。コールバックを使用してカスタム ツイート ボタンを作成しようとしています。以下のコードを貼り付けました。同じページに複数のツイート ボタンがあり、クリックされたボタンに応じて各コールバックに一意の ID を渡したいため、Twitter の Twitter ボタン コードを使用していません。

ボタンが最初にクリックされると、つぶやきのポップアップが開き、つぶやきの後、ウィンドウは閉じますが、コールバック関数は呼び出されません。2 回目に同じボタンをクリックすると (ページをリロードせずに)、コールバック関数が呼び出されます。なぜこれが起こっているのか、最初のクリックで動作するように修正する方法はありますか?

皆さん、ありがとうございました。

<a href="#" target="_blank" id="twtShareLink" 
               onclick="return twOpenPopup('<URL>','<TEXT>','<UNIQUE_ID>')"
               >Tweet It!</a>

JS:

function twOpenPopup(url,text,unique_id){
        twttr.events.bind('tweet',function(event){
               alert('Here');
               //Code that uses unique_id here;
        });
        var twturl="https://twitter.com/intent/tweet?url="+encodeURIComponent(url) + 
            "&count=none&source=tweetbutton&text=" + encodeURIComponent(text) + "&original_referer=" + encodeURIComponent('<?= $_SERVER['HTTP_HOST'] ?>');
        document.getElementById("twtShareLink").href = twturl;
        return true;
    }
4

1 に答える 1

3

ボタンをクリックするまでイベントをバインドしていないためです。関数の外でイベントをバインドする必要がありtwOpenPopup()ます。

于 2012-06-26T17:01:10.623 に答える