我正在使用AddThis小部件来方便地分享网站内容到Twitter、Facebook和Google+。我在我的网站上已经有登录用户,现在想要将已登录的用户与他的分享行为关联起来。
为此,我需要监听Addthis小部件的回调函数,以下是他们网站上的直接示例:
function shareEventHandler(evt) {
if (evt.type == 'addthis.menu.share') {
alert(typeof(evt.data)); // evt.data is an object hash containing all event data
alert(evt.data.service); // evt.data.service is specific to the "addthis.menu.share" event
}
}
// Listen for the share event
addthis.addEventListener('addthis.menu.share', shareEventHandler);
这个事件的问题在于它在实际分享之前就被触发了。例如,用户点击“推特”按钮,脚本会被触发,推特对话框会启动,然后用户要么继续分享要么在对话框中取消分享。
理想情况下,事件处理程序应该在实际成功完成分享后触发,而不是在用户取消分享时触发。从官方文档上看似乎不可能,但我仍然想尝试一下是否有创造性的解决方法?