Gibt es eine Möglichkeit, einen Rückruf auf der Tweet-Schaltfläche von Twitter zu registrieren? Ich möchte nachverfolgen können, welche bestimmten Nutzer auf meiner Website einen Link getwittert haben. Ich kann kein onClick-Ereignis hinzufügen, da es sich um einen domänenübergreifenden iFrame handelt. Irgendwelche anderen Ideen?
Ich habe eine Möglichkeit gesehen, es zu tun , aber es scheint unzuverlässig. Ihre Dokumentation erwähnt nichts, also suche ich Hilfe bei einer Problemumgehung.
Twitter hat Web Intent-Ereignisse für loaded
, rendered
, resize
, Tweet
, follow
, retweet
, like
und click
.
twttr.events.bind(
'Tweet',
function (event) {
// Do something there
}
);
Das Verhalten wurde geändert im Herbst 2015 aufgrund der Unzuverlässigkeit von Rückrufen nach Abschluss eines Ereignisses.
Sie werden jetzt ausgelöst, wenn ein Benutzer die Aktion auf Ihrer Seite aufruft, und nicht nachdem die Aktion abgeschlossen ist.
Beispiel für das Laden von widgets.js :
<script>
// Performant asynchronous method of loading widgets.js
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>
<script>
// Wait until twttr to be ready before adding event listeners
twttr.ready(function (twttr) {
twttr.events.bind('Tweet', function(event) {
console.log(event);
});
});
</script>
Ich habe gerade ein Tweet-Callback-Ereignis implementiert.
Weitere Informationen zum Rückrufereignis von Twitter
- Twitter Web Intents
- Web Intents Javascript Events
Der Javascript Rückruf
$.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);
});
Die Tweet-Schaltfläche:
<a href="http://Twitter.com/intent/tweet?url=http://test.com;via=stack">Twitter</a>
Wenn Sie die JS für Twitter-Widgets laden, können Sie eine Rückruffunktion an das Tweet-Ereignis binden. Siehe den Code unten:
<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>
ja, es gibt eine Rückruffunktion. auch für benutzerdefinierte Twitter-Schaltflächen . finden Sie es hier: https://dev.Twitter.com/discussions/671
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);
});